Настройка переменной NODE_ENV в Express.js на OS X
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Для временной установки переменной окружения NODE_ENV
в приложении на Node.js в OS X выполните следующие команды в терминале:
NODE_ENV=production node app.js
для режима productionNODE_ENV=development node app.js
для режима development
Переходим на следующий уровень
Временные решения – это хорошо, но наша цель – обеспечить постоянную работу приложения. Рассмотрим более надежные способы установки переменных окружения.
Устойчивое задание переменной окружения
Чтобы задать постоянное значение переменной NODE_ENV
в OS X, добавьте строки экспорта в конфигурационный файл вашего shell (~/.bash_profile
или ~/.zshrc
):
echo 'export NODE_ENV=production' >> ~/.bash_profile
# Эта команда круче, чем клыки морского льва. 😎
Примените изменения, выполнив команду source ~/.bash_profile
, или перезагрузите терминал.
Использование NPM-скриптов
Добавьте в package.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
:
npm install --save-dev cross-env
Обновите скрипты в package.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:
🔨 [Development (тестирование, отладка)]
/
⚡ -- Переключатель: NODE_ENV
\
🚀 [Production (производство)]
Расширенные возможности
Использование файлов .env с помощью dotenv
Как вариант для более удобного управления переменными окружения используйте dotenv
:
npm install dotenv
Создайте файл .env
и задайте в нем нужные переменные:
NODE_ENV=development
Подключите dotenv
в начале вашего приложения:
require('dotenv').config();
Системные переменные
Для глобальной установки NODE_ENV
в OS X отредактируйте файл /etc/environment
:
sudo echo 'NODE_ENV=production' >> /etc/environment
# Применяйте с осторожностью!
Жизненный цикл Node-приложения с использованием nodemon, forever и pm2
Используйте nodemon
для автоматической перезагрузки приложения:
npm install --save-dev nodemon
Инструменты forever
или pm2
гарантируют постоянную доступность приложения:
npm install -g pm2
pm2 start app.js --env production
Развертывание приложений на Heroku
Присвойте переменную NODE_ENV
через CLI на Heroku:
heroku config:set NODE_ENV=production
Приоритет безопасности
Следите за безопасностью конфигурационных файлов, храня чувствительные данные в безопасном месте.
Полезные материалы
- Process | Документация Node.js v16.20.2: Описание
process.env
в Node.js. - macos – Обсуждение на Stack Overflow: Различные способы установки переменных окружения в macOS.
- dotenv – npm: npm пакет для загрузки переменных окружения из
.env
. - Официальное руководство Vue CLI: Использование переменных окружения и режимов в Vue CLI.
- cross-env – npm: npm пакет для установки переменных окружения на разных платформах.
- Руководство разработчика Heroku: Установка переменных окружения на Heroku.
- Документация Webpack: Настройка переменных окружения в Webpack.