我试图在我的应用内访问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
没有定义......我在这里做错了什么?
答案 0 :(得分:2)
我不完全确定问题是来自scripts
内的package.json
密钥,但如果我使用此代码,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
并且......它神奇地起作用了。
如果你没有像我这样的选择,你仍然可以试一试。