1
因为我有不同的渠道在npm命令中运行我的代码。如何在两个npm命令中定义变量?
在NPM脚本,我会写
"scripts": {
"start": "webpack-dev-server",
"start:channle_1": "CHANNEL=channe_1 webpack-dev-server",
"start:channle_2": "CHANNEL=channe_2 webpack-dev-server"
}
而在webpack.config.js
,我可以定义变量来判断我在哪个通道。
const CHANNEL = process.env.CHANNEL || 'channe_1';
console.log('===', process.env.CHANNEL);
webpackConfig.plugins.push(
new webpack.DefinePlugin({
CHANNEL: JSON.stringify(CHANNEL),
})
);
所以,在我的代码中,有一个可以使用的glable CHANNEL
。
但是,在我的npm脚本中有一个问题。我想单独的服务器版和channel.I希望它能够喜欢这个
"scripts": {
"start": "webpack-dev-server",
"start:channle_1": "CHANNEL=channe_1 & npm run start",
"start:channle_2": "CHANNEL=channe_2 & npm run start"
}
据我所知,&
可以让故宫命令运行当前,但是,在我的情况中,变量CHANNEL
不能process.env.CHANNEL
通过。
那么,我该如何解决这个问题呢?
还应该补充说,如果你想让脚本在windows上工作,你将不得不使用https://github.com/kentcdodds/cross-env。 – RyanZim