所以我正在使用webpack开发一个项目,并想在我的package.json上创建一个脚本,从那里运行开发和生产模式。我是Windows用户,并始终使用Concurrently同时运行多个终端任务。
我设置了这样的package.json脚本:
"scripts": {
"start": "concurrently \"set NODE_ENV=\" \"webpack --watch\"",
"build": "concurrently \"set NODE_ENV=production\" \"webpack\""
},
终端中的输出是:
set NODE_ENV= exited with code 0
Webpack is watching the files…
...
所以基本上webpack工作正常,但是没有创建/删除变量。两个命令都失败了。
如果我直接跑
set NODE_ENV=production
它有效,所以我有点困惑......
有什么想法吗?
非常感谢!
答案 0 :(得分:1)
变化:
"start": "concurrently \"set NODE_ENV=\" \"webpack --watch\"",
"build": "concurrently \"set NODE_ENV=production\" \"webpack\""
为:
"start": "NODE_ENV= webpack --watch",
"build": "NODE_ENV=production webpack"
您无法在一个进程中更改环境,并希望在另一个进程中并行启动它。您只能在启动时更改子进程的env。子进程始终从父进程继承环境。
如果上述内容在Windows上不起作用,请使用cross-env
:
npm install --save-dev cross-env
并在package.json中使用:
"start": "cross-env NODE_ENV= webpack --watch",
"build": "cross-env NODE_ENV=production webpack"