从gulp注入一个环境variables到webpack
我有一个从我开始webpack捆绑gulpfile。 webpackconfiguration具有使用process.env.NODE_ENV
定义的别名,如下所示
. . resolve: { modulesDirectories: ["node_modules", "js", "jsx"], extensions: ["", ".js", ".jsx"], alias: { config: path.join(__dirname, ('config.' + process.env.NODE_ENV + '.js')) } }..
在gulp文件中,我有两个按顺序执行的任务
-
set-env
使用gulp-env
设置环境variables,如下所示gulpEnv({ vars: { NODE_ENV: 'dev' } });
-
webpack
任务依赖于以前的任务,只有在第一个完成时才执行
这里的variables似乎没有得到正确的注入。 该文件名已被parsing为config.undefined.js
。 我在做什么有什么问题?
我改变了我的方式这样的事情
的WebPack
var NODE_ENV = process.env.NODE_ENV; var config = { . . resolve: { modulesDirectories: ["node_modules", "js", "jsx"], extensions: ["", ".js", ".jsx"], alias: { //<envt> will be injected by gulp config: config: path.join(__dirname, ('config.<envt>.js')) } } . . . } //If webpack is directly invoked with NODE_ENV, replacement will happen here if (NODE_ENV) { config['resolve']['alias']['config'] = config['resolve']['alias']['config'].replace(/<envt>/, NODE_ENV); } module.exports = config;
吞
- 在
set-env
而不是使用NODE_ENV='dev'
set-env
来设置,我只需设置一个全局variablesNODE_ENV='dev'
- 在
webpack
任务里面,我正在做webpackConfig['resolve']['alias']['config'] = webpackConfig['resolve']['alias']['config'].replace(/<envt>/, NODE_ENV);
这对我有效