У вас могут быть различные конфигурации для производственных сред и сред разработки.
Узел предполагает, что он всегда работает в среде разработки. Вы можете подать сигнал Node.js что вы работаете в рабочей среде, установив переменную среды NODE_ENV=производственная .
Обычно это делается путем выполнения команды
export NODE_ENV=production
в оболочке, но лучше поместить его в файл конфигурации оболочки( например .bash_профиль с оболочкой Bash) потому что в противном случае настройка не сохраняется в случае перезагрузки системы.
Вы также можете применить переменную среды, добавив ее в команду инициализации приложения:
NODE_ENV=production node app.js
Эта переменная среды является соглашением, которое широко используется и во внешних библиотеках.
Установка среды на производство в целом гарантирует, что
- ведение журнала сведено к минимальному, необходимому уровню
- для оптимизации производительности используется больше уровней кэширования
Например, Pug, библиотека шаблонов, используемая Express, компилируется в режиме отладки, если NODE_ENV не имеет значения производство . Экспресс-представления компилируются в каждом запросе в режиме разработки, в то время как в рабочей среде они кэшируются. Есть еще много примеров.
Express предоставляет перехваты конфигурации, специфичные для среды, которые автоматически вызываются на основе значения переменной NODE_ENV:
app.configure('development', () => {
//...
})
app.configure('production', () => {
//...
})
app.configure('production', 'staging', () => {
//...
})Например, вы можете использовать это, чтобы установить разные обработчики ошибок для разных режимов:
app.configure('development', () => {
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
})
app.configure('production', () => {
app.use(express.errorHandler())
})Оригинал: “https://flaviocopes.com/node-difference-dev-prod/”