Domanda

Nella mia applicazione, ho un modulo denominato definito in linea in index.html:

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

Ho bisogno di definire questo nella mia pagina web perché tiro qualche roba usando le variabili di ambiente.Quindi, nei miei moduli, posso quindi includere 'config':

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

Quando eseguo una creazione di requirejs usando Grenunt (con Grunt-richiede , che utilizza r.JS), si lamenta che non si trova Config.js.La mia configurazione di build è simile a questa:

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

Quando costruisco, ottengo:

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

Come posso consentire l'uso di moduli denominati, definiti in linea in combinazione con una build R.JS?

È stato utile?

Soluzione

Impostazione

paths: {
   config : 'empty:'
}
.

Nel file di configurazione della build dovrebbe escludere questo modulo fuori dal processo di ottimizzazione e, di conseguenza, smettere di sollevare questo errore.

Ma questo è un modo un po 'complicato, perché questa opzione è comunemente usata per escludere dipendenze di terze parti (ad esempio, quando si sviluppa una biblioteca JS basata sulla spina dorsale, sarebbe meglio separare la libertà di backbone)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top