在一个简单的反应应用程序中读取环境变量
read environment vars in a simple react app
我使用 create-react-app
模块创建了一个应用程序,并且在一个组件中,我正在尝试读取一个环境。 var,像这样
<p style={textStyle}>Environment: { process.env.AWS_ENV || process.env.NODE_ENV }</p>
我用 AWS_ENV=live npm start
启动应用程序,但它从不读取此变量。结果总是 development
。我注意到,如果我使用 npm run build
构建应用程序,输出将是 production
,但无论如何我无法读取 AWS_ENV var
您应该在 webpack.prod.js 中设置 AWS_ENV
变量。
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify('production'),
'AWS_ENV': JSON.stringify('live npm start')
}
}),
create-react-app 使用 https://github.com/motdotla/dotenv。要将 ENV 加载到 Webpack 并在浏览器中传递它,运行 在控制台中执行以下命令:
echo -e 'REACT_APP_AWS_ENV=live' > .env
npm start
注意 REACT_APP_
create-react-app 的特殊前缀。
然后在你的组件中:
...
{ process.env.REACT_APP_AWS_ENV }
...
我使用 create-react-app
模块创建了一个应用程序,并且在一个组件中,我正在尝试读取一个环境。 var,像这样
<p style={textStyle}>Environment: { process.env.AWS_ENV || process.env.NODE_ENV }</p>
我用 AWS_ENV=live npm start
启动应用程序,但它从不读取此变量。结果总是 development
。我注意到,如果我使用 npm run build
构建应用程序,输出将是 production
,但无论如何我无法读取 AWS_ENV var
您应该在 webpack.prod.js 中设置 AWS_ENV
变量。
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify('production'),
'AWS_ENV': JSON.stringify('live npm start')
}
}),
create-react-app 使用 https://github.com/motdotla/dotenv。要将 ENV 加载到 Webpack 并在浏览器中传递它,运行 在控制台中执行以下命令:
echo -e 'REACT_APP_AWS_ENV=live' > .env
npm start
注意 REACT_APP_
create-react-app 的特殊前缀。
然后在你的组件中:
...
{ process.env.REACT_APP_AWS_ENV }
...