我有一个部署在AWS Elastic Beanstalk环境上的reactjs应用程序,该环境使用Cognito进行身份验证。我需要使用环境变量以及数据库和Cognito使前端代码DEV可配置。
有人知道如何实现吗?
答案 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
(用于使用局部环境变量进行构建)