我应该以普通的com.mongodb.MongoSocketOpenException: Exception opening socket
还是dependency
的身份安装摩根,因为无论如何我都不愿意在生产模式下使用日志记录:
devDependency
答案 0 :(得分:2)
假设config.NODE_ENV
与process.env.NODE_ENV
相匹配,并且您是通过npm install --production
或类似的方式安装的,则无需在morgan
中包含dependencies
并将其放在devDependencies
中。您应该在if语句内移动require
或import
以避免错误。当您调用require
或import
时,它将尝试从node_modules
或模块缓存(如果已加载)中加载。
if (config.NODE_ENV !== 'production') {
const morgan = require('morgan');
app.use(morgan('dev', { stream: { write: message => logger.http(message) } }));
}
也就是说,我个人会将其包含在dependencies
中,并通过配置设置禁用日志记录,以防我想在生产环境中启用日志记录来调试某些东西。