如何在两个npm命令中定义变量?
因为我有不同的通道在npm命令中运行我的代码 在npm脚本中,我将编写如何在两个npm命令中定义变量?,npm,webpack,Npm,Webpack,因为我有不同的通道在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 C
"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频道可以使用
但是,我的npm脚本中有一个问题。我想要分开的服务器和频道。我希望它能像这样
"scripts": {
"start": "webpack-dev-server",
"start:channle_1": "CHANNEL=channe_1 & npm run start",
"start:channle_2": "CHANNEL=channe_2 & npm run start"
}
据我所知,&
当前可以让npm命令运行,但在我的情况下,变量CHANNEL
无法传入process.env.CHANNEL
那么,我该如何解决这个问题呢?如果您取出&
它应该可以正常工作:
"start:channle_1": "CHANNEL=channe_1 npm run start"
当您将&
放入其中时,它将尝试在后台运行前面的(空)命令。您可以通过在命令中添加前缀来设置环境变量,以空格分隔。还应添加一点,即如果您希望脚本在windows上运行,则必须使用。