想象一下,我有一个环境变量
export NODE_ENV=production
当我做的时候
echo $NODE_ENV //--> shows production which is correct
问题:
在我的package.json
中scripts: {
...
"build": "export REACT_APP_NODE_ENV=${NODE_ENV:-development};
npm run build-css && react-scripts build",
...
}
现在当我npm run build
REACT_APP_NODE_ENV被设置为开发...但它应该是生产,因为存在NODE_ENV。
如果我这样做
scripts: {
...
"build": "export REACT_APP_NODE_ENV=production;
npm run build-css && react-scripts build",
...
}
它按预期正常工作,即所有脚本都使用生产的预期值访问REACT_APP_NODE_ENV。
目标
我希望避免在package.json中使用硬编码
如何设置值为${NODE_ENV}
的 REACT_APP_NODE_ENV
"build": "export REACT_APP_NODE_ENV=${NODE_ENV};
npm run build-css && react-scripts build",
答案 0 :(得分:1)
您可能希望确保这是跨平台的,这将在以后为您节省一些麻烦。
这个问题已经在npm包cross-var中解决了。
然后,假设您已经导出了NODE_ENV,那么就这样使用它:
"scripts": {
"build": "REACT_APP_NODE_ENV=${NODE_ENV}"
}