我在执行react app时试图从本地定位多个环境。
1. Development
2. Staging
3. Production
我还试图在任何环境中测试脱机模式。因此,我配置的脚本如下:
"staging-server": "nodemon server.js --environment=staging",
"staging": "concurrently -k \"npm:staging-server\" \"NODE_ENV='staging' PORT=3003 react-scripts start\"",
"prod": "npm run build && forever server.js --environment=production"
我能够在express中使用args来获取环境arg,但是仅当我为process.env.NODE_ENV进行控制台时,我的本地ui应用仍然显示开发。我还试图将NODE_ENV设置为同一行进行分期,但是仍然没有运气。端口设置正在运行,但是该应用程序同时在3000和3003两个端口中运行。如何摆脱这种情况,并通过提供有用的链接或代码来帮助我理解登台配置,很好
答案 0 :(得分:1)
根据文档,我们无法覆盖NODE_ENV,但仍有空间创建以REACT_APP_开头的自定义变量。所以我配置为如下所示:
参考:https://facebook.github.io/create-react-app/docs/adding-custom-environment-variables
"staging": "concurrently -k \"npm:staging-server\" \"cross-env REACT_APP_ENVIRONMENT='staging' PORT=3003 react-scripts start\"",
在我的UI应用程序中,我可以通过将其合并来获取其值,如下所示:
console.log('REACT_APP_ENVIRONMENT => ', process.env.REACT_APP_ENVIRONMENT);
答案 1 :(得分:0)
在NODE_ENV前面使用cross-env。
npm i -g cross-env
"staging": "concurrently -k \"npm:staging-server\" \"cross-env NODE_ENV='staging' PORT=3003 react-scripts start\"",
答案 2 :(得分:0)
最简单的方法是将其直接添加到您的命令中:
"scripts": {
"start": "./node_modules/.bin/nodemon server.js",
"start:prod": "NODE_ENV=prod node server.js",
},
答案 3 :(得分:-1)
我使用REACT_APP_STAGE构建该版本,并在我的应用程序中将其用作process.env.REACT_APP_STAGE。
ggplot(df, aes(Depth, values, fill=Tax)) + geom_bar(stat="identity")+
facet_wrap(~Year) +
coord_flip()