#node.js #morgan
#node.js #morgan
Вопрос:
должен ли я установить morgan как обычный dependency
или как devDependency
, поскольку я все равно не собираюсь использовать ведение журнала в рабочем режиме:
if (config.NODE_ENV !== 'production') {
app.use(morgan('dev', { stream: { write: message => logger.http(message) } }));
}
Комментарии:
1. Вы могли бы установить его как devDependency, но вы, вероятно, загружаете его через
require
выше2. ДА, через
import
3. Поскольку вам это понадобится в «prod», вы должны.
Ответ №1:
Предполагая, что config.NODE_ENV
это соответствует process.env.NODE_ENV
и, который вы установили через npm install --production
или аналогичный, тогда вам не нужно включать morgan
в свой dependencies
и может просто иметь его devDependencies
. Вы должны переместить require
or import
внутри оператора if, чтобы предотвратить ошибки. Когда вы вызываете require
or import
, когда он пытается загрузить из node_modules
или из кэша модуля, если он уже был загружен.
if (config.NODE_ENV !== 'production') {
const morgan = require('morgan');
app.use(morgan('dev', { stream: { write: message => logger.http(message) } }));
}
Тем не менее, я бы лично включил его в dependencies
и отключил ведение журнала с помощью параметра конфигурации на случай, если я захочу включить ведение журнала в своей производственной среде для отладки чего-либо.