logo

Настройка переменной NODE_ENV в Express.js на OS X

Быстрый ответ

Для временной установки переменной окружения NODE_ENV в приложении на Node.js в OS X выполните следующие команды в терминале:

  • NODE_ENV=production node app.js для режима production
  • NODE_ENV=development node app.js для режима development

Переходим на следующий уровень

Временные решения – это хорошо, но наша цель – обеспечить постоянную работу приложения. Рассмотрим более надежные способы установки переменных окружения.

Устойчивое задание переменной окружения

Чтобы задать постоянное значение переменной NODE_ENV в OS X, добавьте строки экспорта в конфигурационный файл вашего shell (~/.bash_profile или ~/.zshrc):

Bash
Скопировать код
echo 'export NODE_ENV=production' >> ~/.bash_profile
# Эта команда круче, чем клыки морского льва. 😎

Примените изменения, выполнив команду source ~/.bash_profile, или перезагрузите терминал.

Использование NPM-скриптов

Добавьте в package.json скрипты для запуска с определённым окружением:

json
Скопировать код
"scripts": {
  "start": "node app.js",
  "start:dev": "NODE_ENV=development npm start",
  "start:prod": "NODE_ENV=production npm start"
}

Запуск приложения в режиме production осуществляется командой npm run start:prod.

Кроссплатформенные настройки с cross-env

Установите пакет cross-env для кроссплатформенной установки NODE_ENV:

Bash
Скопировать код
npm install --save-dev cross-env

Обновите скрипты в package.json:

json
Скопировать код
"scripts": {
  "start:dev": "cross-env NODE_ENV=development node app.js",
  "start:prod": "cross-env NODE_ENV=production node app.js"
}

Визуализация

Представьте NODE_ENV как переключатель между режимами development и production:

Markdown
Скопировать код
      🔨  [Development (тестирование, отладка)]
     /
⚡ --   Переключатель: NODE_ENV
     \
      🚀  [Production (производство)]

Расширенные возможности

Использование файлов .env с помощью dotenv

Как вариант для более удобного управления переменными окружения используйте dotenv:

Bash
Скопировать код
npm install dotenv

Создайте файл .env и задайте в нем нужные переменные:

NODE_ENV=development

Подключите dotenv в начале вашего приложения:

JS
Скопировать код
require('dotenv').config();

Системные переменные

Для глобальной установки NODE_ENV в OS X отредактируйте файл /etc/environment:

Bash
Скопировать код
sudo echo 'NODE_ENV=production' >> /etc/environment
# Применяйте с осторожностью!

Жизненный цикл Node-приложения с использованием nodemon, forever и pm2

Используйте nodemon для автоматической перезагрузки приложения:

Bash
Скопировать код
npm install --save-dev nodemon

Инструменты forever или pm2 гарантируют постоянную доступность приложения:

Bash
Скопировать код
npm install -g pm2
pm2 start app.js --env production

Развертывание приложений на Heroku

Присвойте переменную NODE_ENV через CLI на Heroku:

Bash
Скопировать код
heroku config:set NODE_ENV=production

Приоритет безопасности

Следите за безопасностью конфигурационных файлов, храня чувствительные данные в безопасном месте.

Полезные материалы

  1. Process | Документация Node.js v16.20.2: Описание process.env в Node.js.
  2. macos – Обсуждение на Stack Overflow: Различные способы установки переменных окружения в macOS.
  3. dotenv – npm: npm пакет для загрузки переменных окружения из .env.
  4. Официальное руководство Vue CLI: Использование переменных окружения и режимов в Vue CLI.
  5. cross-env – npm: npm пакет для установки переменных окружения на разных платформах.
  6. Руководство разработчика Heroku: Установка переменных окружения на Heroku.
  7. Документация Webpack: Настройка переменных окружения в Webpack.