我有一个Node.js应用程序。 我的package.json中的构建脚本如下所示:
"build": "webpack --config webpack.prod.js && set NODE_ENV=production&& npm run express-server"
当我在我的计算机上本地运行此脚本时,我可以访问process.env.NODE_ENV并且它确实在“生产”中
但是当我在托管在数字海洋上的Ubuntu服务器上做同样的事情时,process.env.NODE_ENV是'undefined'。
如何在Ubuntu服务器上的npm脚本中设置NODE_ENV?
答案 0 :(得分:0)
修改强>
根据这个answer,它说:
在UBUNTU中使用:
$ export NODE_ENV=test
注意,使用export
代替set
。
原始回答:
首先尝试将您的build
脚本更改为:
"build": "webpack --config webpack.prod.js && NODE_ENV=\"production\" npm run express-server"
注意set
关键字已被省略,转义双引号已被\"production\"
包裹,&&
运算符已被删除。
如果还失败,请结帐cross-env。它的文档说明:
当您使用
NODE_ENV=production
设置环境变量时,大多数Windows命令提示都会阻塞。 (例外情况是Windows上的Bash,它使用本机Bash。)同样,Windows和POSIX命令如何利用环境变量也有所不同。使用POSIX,您可以使用:$ENV_VAR
,在Windows上使用%ENV_VAR%
。
所以也许尝试使用cross-env
并将您的build
脚本更改为以下内容:
"build": "webpack --config webpack.prod.js && cross-env NODE_ENV=\"production\" npm run express-server"