Possibile saltare i moduli inseriti e nominati con R.JS Build?
-
21-12-2019 - |
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?
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)