设置"NODE_ENV=production"时出现什么错误,如何为节点脚本命令设置环境变量?
What is the error when I set "NODE_ENV=production", how to set environment variable for node script command?
我用的是webpack 3.1.0,node 9.2.0,命令行windows 10.
当我在 package.json 上编写 运行 脚本时出现错误。
"scripts": {
"build": "NODE_ENV=production webpack --progress --colors -p",
...
}
我收到如下错误。
13 verbose stack Error: wow_dns@1.0.0 build: `NODE_ENV=production webpack --progress --colors -p`
13 verbose stack Exit status 1
13 verbose stack at EventEmitter.<anonymous> (C:\Users\sheng\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\index.js:285:16)
13 verbose stack at EventEmitter.emit (events.js:159:13)
13 verbose stack at ChildProcess.<anonymous> (C:\Users\sheng\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:159:13)
13 verbose stack at maybeClose (internal/child_process.js:943:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:220:5)
14 verbose pkgid wow_dns@1.0.0
15 verbose cwd F:\wow\wow_dns
16 verbose Windows_NT 10.0.16299
17 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Users\sheng\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js" "run" "build"
但它会 运行 通过,如果我删除 "NODE_ENV=production" 像:
"scripts": {
"build": "webpack --progress --colors -p",
...
}
它会起作用的。
如何在生产环境中设置运行ning环境?
请更改
"build": "NODE_ENV=production webpack --progress --colors -p"
至
"build": "set NODE_ENV=production;webpack --progress --colors -p"
或
"build": "NODE_ENV=production;webpack --progress --colors -p"
问题是,一旦你完成一个命令,你需要给一个分号来表示命令结束。
在windows中,用&
连接两个命令,eg:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"serve": "SET NODE_ENV=development& webpack serve --progress --color",
"build": "SET NODE_ENV=production& webpack --progress --color",
"serve-old": "webpack-dev-server --watch"
},
生产部署会在很多方面有所不同,但在生产部署时的标准约定是定义一个名为 NODE_ENV 的环境变量并将其值设置为“生产".
要设置 NODE_ENV,您可以使用这些方法中的任何一种
方法一:在package.json
文件的脚本属性中设置NODE_ENV
Windows :
"scripts": {
"build": "SET NODE_ENV=production & webpack --progress --color",
...
}
Linux 或其他基于 unix 的系统:
"scripts": {
"build": "NODE_ENV=production && webpack --progress --color",
...
}
方法二:为所有节点应用设置NODE_ENV
Windows :
set NODE_ENV=production
Linux 或其他基于 Unix 的系统:
export NODE_ENV=production
这将为当前 bash 会话设置 NODE_ENV,因此在此语句之后启动的任何应用程序都将 NODE_ENV 设置为生产。
方法三:为当前应用设置NODE_ENV
NODE_ENV=production node app.js
这将仅为当前应用设置 NODE_ENV。当我们想要在不同环境中测试我们的应用程序时,这会有所帮助。
更多:https://riptutorial.com/node-js/example/10101/setting-node-env--production-
我用的是webpack 3.1.0,node 9.2.0,命令行windows 10.
当我在 package.json 上编写 运行 脚本时出现错误。
"scripts": {
"build": "NODE_ENV=production webpack --progress --colors -p",
...
}
我收到如下错误。
13 verbose stack Error: wow_dns@1.0.0 build: `NODE_ENV=production webpack --progress --colors -p`
13 verbose stack Exit status 1
13 verbose stack at EventEmitter.<anonymous> (C:\Users\sheng\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\index.js:285:16)
13 verbose stack at EventEmitter.emit (events.js:159:13)
13 verbose stack at ChildProcess.<anonymous> (C:\Users\sheng\AppData\Roaming\npm\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:159:13)
13 verbose stack at maybeClose (internal/child_process.js:943:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:220:5)
14 verbose pkgid wow_dns@1.0.0
15 verbose cwd F:\wow\wow_dns
16 verbose Windows_NT 10.0.16299
17 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Users\sheng\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js" "run" "build"
但它会 运行 通过,如果我删除 "NODE_ENV=production" 像:
"scripts": {
"build": "webpack --progress --colors -p",
...
}
它会起作用的。 如何在生产环境中设置运行ning环境?
请更改
"build": "NODE_ENV=production webpack --progress --colors -p"
至
"build": "set NODE_ENV=production;webpack --progress --colors -p"
或
"build": "NODE_ENV=production;webpack --progress --colors -p"
问题是,一旦你完成一个命令,你需要给一个分号来表示命令结束。
在windows中,用&
连接两个命令,eg:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"serve": "SET NODE_ENV=development& webpack serve --progress --color",
"build": "SET NODE_ENV=production& webpack --progress --color",
"serve-old": "webpack-dev-server --watch"
},
生产部署会在很多方面有所不同,但在生产部署时的标准约定是定义一个名为 NODE_ENV 的环境变量并将其值设置为“生产".
要设置 NODE_ENV,您可以使用这些方法中的任何一种
方法一:在package.json
文件的脚本属性中设置NODE_ENV
Windows :
"scripts": {
"build": "SET NODE_ENV=production & webpack --progress --color",
...
}
Linux 或其他基于 unix 的系统:
"scripts": {
"build": "NODE_ENV=production && webpack --progress --color",
...
}
方法二:为所有节点应用设置NODE_ENV
Windows :
set NODE_ENV=production
Linux 或其他基于 Unix 的系统:
export NODE_ENV=production
这将为当前 bash 会话设置 NODE_ENV,因此在此语句之后启动的任何应用程序都将 NODE_ENV 设置为生产。
方法三:为当前应用设置NODE_ENV
NODE_ENV=production node app.js
这将仅为当前应用设置 NODE_ENV。当我们想要在不同环境中测试我们的应用程序时,这会有所帮助。
更多:https://riptutorial.com/node-js/example/10101/setting-node-env--production-