Question

Dans mon application, j'ai un module nommé défini en ligne dans Index.html:

<script>
    define('config', {
        mode: '...',
        environment: '...',
        apiUrl: '...',
        rootPath: '...',
        baseImageUrl: '...'
    });
</script>

J'ai besoin de définir cela dans ma page Web car je tire des choses à utiliser des variables d'environnement.Donc, dans mes modules, je peux alors inclure "config":

define(['config', 'jquery'], function(config, $) { ... });

Quand j'exécute une construction requisjs à l'aide de GRUNT (avec GRUNT-Exiger , qui utilise r.JS), il se plaint de ne pas trouver config.js.Ma configuration de construction ressemble à ceci:

{
    baseUrl: 'js',
    main: 'app/Main',
    dir: 'js/build',
    out: null,
    modules: { ... },
    paths: { ... },
    shim: { ... }
}

Quand je construis, je reçois:

Error: Error: ENOENT, no such file or directory '/projects/projectname/js/build/config.js

Comment puis-je permettre l'utilisation de modules nommés et définis en ligne conjointement avec une construction R.JS?

Était-ce utile?

La solution

réglage

paths: {
   config : 'empty:'
}

Dans votre fichier de configuration de construction doit exclure ce module hors du processus d'optimisation et, par conséquent, arrêtez d'augmenter cette erreur.

Mais ceci est un peu délicat, car cette option est couramment utilisée pour exclure les dépendances tierces (par exemple, lors du développement de la bibliothèque JS basée sur la colonne vertébrale, il serait préférable de séparer votre liberole)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top