Использование: Grunt 1.01, load-grunt-config, jit-grunt.Изменение конфигурации, видимое для последующих задач
Я ищу простой способ установить флаг разработки/производства для использования в определенных задачах Grunt.
Первой задачей, которой нужен флаг, является webpack.js
, чтобы переключаться между сборками разработки и производства React. Вот этот файл:
module.exports = function(grunt) {
// Get the task that was invoked from the command line.
var theTask = process.argv[2];
// Check to see if it's a production task. If so, change the
// `env` variable accordingly.
if (theTask !== undefined && theTask.indexOf('prod') === 0) {
grunt.config.set('env', 'production');
}
return {
app: {
entry: './<%= siteInfo.build_dir %>/<%= siteInfo.temp_dir %>/<%= siteInfo.app_dir %>/<%= siteInfo.app_file %>.js',
output: {
path: '<%= siteInfo.build_dir %>/<%= siteInfo.temp_dir %>',
filename: '<%= siteInfo.bundle_file %>.tmp.js'
},
stats: false,
failOnError: true,
progress: false,
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(grunt.config.data.env)
}),
]
}
}
};
В контексте этой задачи он отлично работает. Если я запустил grunt prod
, тогда правильная версия React будет включена в комплект JS.
Однако я был под (безусловно) ошибочным впечатлением, что, установив переменную env
с помощью grunt.config.set
, это обновление для объекта конфигурации Grunt будет доступно для последующих задач.
Как я выяснил, env
is undefined
если я console.log(grunt.config.data.env)
в другой задаче.
Любые указатели или предложения по альтернативным подходам оценены!
Пятно на! Я попробовал аналогичный подход, прежде чем я опубликовал его, но с немного другого ракурса, но он не сработает, этот работает. Приветствую человека! – davetgreen
Единственная проблема, с которой я столкнулся, состоит в том, что '<% = grunt.option ('env')%>' не работает в моих подпрограммах, хотя я предполагаю, что это больше связано с тем, что я использую нагрузку -grunt-конфигурации? – davetgreen
Я так не думаю? Я не использую этот плагин, потому что я написал свою собственную функцию для загрузки модульных файлов конфигурации, и у меня есть шаблоны с тире – theaccordance