Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在两个npm命令中定义变量?_Npm_Webpack - Fatal编程技术网

如何在两个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

因为我有不同的通道在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
频道可以使用

但是,我的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上运行,则必须使用。