автоматически обрабатывает process.env.NODE_ENV для «производства»? - PullRequest
2 голосов
/ 05 февраля 2020

Я читал чей-то код и наткнулся на эту строку.

if (process.env.NODE_ENV === 'production') { ...

Это приложение node.js с express сервером и reactjs интерфейсом. Итак, допустим, что мы развернем его на heroku, получит ли он эту переменную NODE_ENV автоматически (или установлен самой heroku), или мне нужно установить ее вручную, как мы устанавливаем другие переменные env на сервере разработки?

Ответы [ 3 ]

3 голосов
/ 05 февраля 2020

Как указано здесь, NODE_ENV устанавливается на производство по умолчанию, если вы развернете его в Heroku: https://devcenter.heroku.com/articles/nodejs-support#runtime -behavior

0 голосов
/ 05 февраля 2020

Внутри вашего проекта в Heroku вы можете установить все переменные окружения. Go в вашем проекте> настройки> Config Vars и установите NODE_ENV production.

0 голосов
/ 05 февраля 2020

process.env относится к переменным среды в системе. Это во многом зависит от того, где работает приложение и как настроена система. Herocku не знает, находится ли конкретная c версия вашего приложения в тестовом или производственном режиме. Таким образом, разработчик определил среду и добавил «production» как переменную в этой среде.

Если вы используете npm, вы можете добавить переменные с помощью команды сценария

{
  ..
  "scripts": {
    "dev": "corss-env ENVIRONMENT=development ..",
    "prod": "cross-env ENVIRONMENT=production .."
  }
  ..
}

и использовать соответствующая команда при запуске в соответствии с настройкой.

https://www.npmjs.com/package/cross-env

...