[英]Can't set NODE_ENV=production with npm and webpack
我正在尝试访问我的应用程序内的process.env.NODE_ENV
,但是当我检查它时,我只会得到“未定义过程”。
package.json:
"scripts": {
"dev": "node ./node_modules/webpack/bin/webpack.js",
"prod": "NODE_ENV=production node ./node_modules/webpack/bin/webpack.js -p"
},
webpack.config.js:
const NODE_ENV = process.env.NODE_ENV ? process.env.NODE_ENV.toLowerCase() : 'development';
及以下:
plugins: [
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify(NODE_ENV),
'URL_DEV': JSON.stringify("specificIP"),
'URL_PROD': JSON.stringify("OtherIP")
}
})
]
在应用程式来源中:
switch(process.env.NODE_ENV) {
case 'development':
url = process.env.URL_DEV;
break;
case 'production':
url = process.env.URL_PROD;
break;
default:
url = process.env.URL_DEV;
}
似乎未定义process
...我在这里做错了什么?
我不能完全确定问题是否出自package.json
scripts
键,但是如果我使用this,似乎NODE_ENV
现在已正确设置:
"scripts": {
"dev": "cross-env NODE_ENV=development node ./node_modules/webpack/bin/webpack.js --progress --colors --bail",
"prod": "cross-env NODE_ENV=production webpack -p --progress --colors --bail"
}
因此,我实际上使用了cross-env
并且...神奇地起作用。 如果您像我以前那样没有选择,您仍然可以尝试一下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.