如何使UI代码开发者可配置?

时间:2018-06-23 00:26:55

标签: node.js reactjs amazon-web-services elastic-beanstalk amazon-cognito

我有一个部署在AWS Elastic Beanstalk环境上的reactjs应用程序,该环境使用Cognito进行身份验证。我需要使用环境变量以及数据库和Cognito使前端代码DEV可配置。

有人知道如何实现吗?

2 个答案:

答案 0 :(得分:0)

我认为您无法从客户端reactjs应用读取任何ENV变量,而是需要服务器端技术来做到这一点。 Elastic Beanstalk允许您使用管理面板输入每个环境的环境变量。添加您的ENV变量,这些变量将附加到process.env对象

const config = {};

config.db = {
  database : process.env.DB_HOST || 'your-db-host'
  database : process.env.DB_USER || 'your-db-user'
  database : process.env.DB_PASSWORD || 'your-db-pwd'
};

export default config;

答案 1 :(得分:0)

我正在使用create-react-app,这是我的构建脚本

"build": "sh -ac '. ./.env.${REACT_APP_ENV}; react-scripts build'",
"build:prod": "REACT_APP_ENV=prod npm run-script build",
"build:staging": "REACT_APP_ENV=staging npm run-script build",

它要求您在根文件夹中具有.env.prod和.env.staging文件,以便为各自的环境设置环境变量,还可以添加其他脚本,例如为本地环境添加一些内容。会添加

"build:local": "REACT_APP_ENV=local npm run-script build" 

在package.json中,然后在具有我所有本地特定环境的根文件夹中添加.env.local文件。变量。 以

的形式运行CRA的构建命令
npm run build:local

(用于使用局部环境变量进行构建)