Рубрики
Без рубрики

Узел, разница между разработкой и производством

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

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

Узел предполагает, что он всегда работает в среде разработки. Вы можете подать сигнал 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/”