Могу ли я игнорировать часть кода в постановке Heroku?

Я хочу проверить поведение своего приложения, отправив его в промежуточное приложение на Heroku. Есть часть, которая сохраняет информацию в s3, которую я хочу, чтобы приложение выполняло во время производства, но пропускало ее при тестировании на стадии подготовки. Есть ли способ сделать это? Я вручную комментировал это, но было бы неплохо, если бы это можно было сделать автоматически. Я использую узел и выражаю, если это помогает.


person jomak73    schedule 12.03.2018    source источник


Ответы (1)


Вы можете feature base your code. Просто добавьте переменную среды и проверьте значение этой переменной в своем коде. Если значение равно true, выполните код, если нет, то не выполняйте. Мы постоянно делаем это в разных средах, когда выпускаем новые функции, чтобы уменьшить возможное влияние.

  1. Измените свой .env локально, чтобы иметь эту новую переменную.
  2. Добавьте свою переменную в ваш app.json (лучшая практика). Это заставит приложение иметь эту переменную перед запуском, поэтому никто не забудет ее добавить. { "name": "my app", "description": "My super app", "scripts": {}, "env": { "MY_ENV_VAR": { "required": true } }

3.Проверьте значение переменной в вашем коде:

if (process.env.MY_ENV_VAR === 'true') { //keep in mind these will be strings //do your logic }

  1. Убедитесь, что env var существует в настройках приложения панели управления heroku.

С Уважением

person David Espino    schedule 13.03.2018
comment
Похоже, это именно то, что мне нужно! Итак, в мой файл app.json я добавил: env: {DEBUG_MODE: {required: true}}, затем я установил свою локальную переменную .env, перейдя в Панель управления -> Система -> Дополнительные параметры системы -> Переменные среды -> Система переменные -> Новый... и затем добавление DEBUG_MODE, установленное в true. Однако выполнение console.log('режим отладки: ' + process.env.DEBUG_MODE) выводит режим отладки: undefined. Должен ли я устанавливать переменную env локально где-то еще? - person jomak73; 13.03.2018
comment
Ничего, просто перезапустил окно командной строки, и теперь оно показывает правильное значение для DEBUG_MODE! Спасибо!! - person jomak73; 13.03.2018