È possibile con l'aiuto di Grunt preprocess che è utile per la sostituzione (e altre cose) dei modelli all'interno dei file.
innanzitutto aggiungere questo ai vostri .js codice:
/* Begin insertion of baseUrl by GruntJs */
/* @ifdef baseUrl
var baseUrl = /* @echo baseUrl */ // @echo ";"
// @endif */
/* @ifndef baseUrl
var baseUrl = 'http://www.fallback.url';
// @endif */
/* End of baseUrl insertion */
Poi nel file grugnito, dopo l'installazione di grugnito pre-elaborazione (cioè npm install grunt-preprocess --save-dev
si aggiunge la seguente configurazione:
preprocess: {
options: {
context: {
}
},
js: {
src: 'public/js/services.js',
dest: 'services.js'
}
},
ovviamente, è necessario aggiornare l'elenco di file js di conseguenza a tutti i file che si utilizzano. importante avviso - se si prevede di aggiornare lo stesso file (e non per una nuova destinazione), è necessario utilizzare l'opzione linea
Finalmente, al fine di lavorare con un command line config variable
, aggiungere il seguente compito personalizzato il file grugnito così:
grunt.registerTask('baseUrl', function() {
var target = grunt.option('rest.baseUrl') || undefined;
grunt.log.ok('baseUrl is set to', target);
grunt.config('preprocess.options.context.baseUrl', target);
grunt.task.run('preprocess');
});
Infine, eseguire l'attività baseurl in questo modo:
grunt baseUrl --rest.baseUrl='http://some.domain.net/public/whatever'
Avviso ho messo in un URL fallback in modo da poter eseguire anche grunt baseUrl
e gr unt imposterà il tuo baseUrl su quello definito.
fonte
2013-08-24 10:07:42
l'inserimento nel file .js è più complesso di quanto dovrebbe essere perché non mi piace Jetbrains per poi avvisarmi di tutti i tipi di cose inutili (come punto e virgola o qualsiasi altra cosa). Anche @echo ha avuto alcuni problemi per me, quindi invio manualmente la chiusura; *punto e virgola* –