2016-09-27 4 views
0

Я создаю приложение с модулем create-react-app, а в компоненте я пытаюсь прочитать env. вар, как этотчтение окружения vars в простое приложение-ответ

<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 вар

ответ

1

создать реагирующими-приложение с помощью https://github.com/motdotla/dotenv. Чтобы загрузить ENV в Webpack и передать его в браузере, запустите эту команду в консоли:

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

Note REACT_APP_ префикса специального для создает реагирующий-приложение.

Тогда в ваших компонентов:

... 
{ process.env.REACT_APP_AWS_ENV } 
... 
+0

не работал также –

+0

@LuizE. см. обновленное сообщение –

1

вы должны установить AWS_ENV вар в вашем webpack.prod.js.

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

Должно быть: 'AWS_ENV: JSON.stringify ('живой')' –

+0

не используя WebPack здесь. –

+0

@LuizE. _create-react-app_ использует webpack внутри. 'process.env' недоступен в браузере, если он явно не определен. –