在简单的反应应用中阅读环境变量

时间:2016-09-27 08:30:04

标签: reactjs create-react-app

我创建了一个带有@echo off set src_folder=C:\Users\Mallik\Desktop\ set dst_folder=C:\Users\Mallik\Desktop\abc\ rem /Y Suppresses prompting to confirm you want to overwrite an existing destination file. xcopy %src_folder%*.1.txt %dst_folder% /y 模块的应用,在一个组件中,我试图读取一个环境。 var,像这样

@echo off
set src_folder=C:\Users\Mallik\Desktop\abc\
set dst_folder=C:\Users\Mallik\Desktop\output\

cd %src_folder%
call :searchFile
goto :eof

:searchFile
for %%f in (*.1.txt) do xcopy %%f %dst_folder%
for /D %%d in (*) do (
    cd %%d
    call :searchFile
    cd ..
)
exit /b

rem dst_folder should not be under src_folder, 
rem otherwise warning "File cannot be copied onto itself"
rem removed /Y option in xcopy to prevent same name file be overwrited.

我使用create-react-app启动应用程序,它永远不会读取此var。结果总是<p style={textStyle}>Environment: { process.env.AWS_ENV || process.env.NODE_ENV }</p> 。我注意到,如果我使用AWS_ENV=live npm start构建应用程序,输出将为development,但无论如何我无法读取AWS_ENV var

2 个答案:

答案 0 :(得分:3)

使用https://github.com/motdotla/dotenv

create-react-app 。要将ENV加载到Webpack并在浏览器中传递它,请在控制台中运行以下命令:

echo -e 'REACT_APP_AWS_ENV=live' > .env
npm start

请注意 create-react-app 特殊的REACT_APP_前缀。

然后在你的组件中:

...
{ process.env.REACT_APP_AWS_ENV }
...

答案 1 :(得分:1)

您应该在webpack.prod.js中设置AWS_ENV var。

new webpack.DefinePlugin({
      'process.env': {
        'NODE_ENV': JSON.stringify('production'),
        'AWS_ENV': JSON.stringify('live npm start')
      }
    }),