Должен ли я установить morgan logger как зависимость от разработчика

#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 и отключил ведение журнала с помощью параметра конфигурации на случай, если я захочу включить ведение журнала в своей производственной среде для отладки чего-либо.