Ответ 1
Возможно с помощью препроцесса Grunt, который полезен для замены (и других вещей) шаблонов внутри файлов.
Сначала добавьте это в свой .js код:
/* 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 */
Затем в вашем файле grunt, после установки препроцесса grunt (i.e npm install grunt-preprocess --save-dev
, вы добавляете следующую конфигурацию:
preprocess: {
options: {
context: {
}
},
js: {
src: 'public/js/services.js',
dest: 'services.js'
}
},
очевидно, вам необходимо обновить список файлов js, в соответствии с которым вы всегда будете использовать файлы. важное - если вы планируете обновлять один и тот же файл (а не новый пункт назначения), вам нужно использовать встроенную опцию
Наконец, чтобы работать с command line config variable
, добавьте в свой файл grunt следующую настраиваемую задачу:
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');
});
Наконец, запустите задачу baseUrl следующим образом:
grunt baseUrl --rest.baseUrl='http://some.domain.net/public/whatever'
Обратите внимание, что я помещаю резервный URL-адрес, чтобы вы также могли запускать grunt baseUrl
, и grunt установит ваш baseUrl на ваш определенный.