【问题标题】:Should I install morgan logger as dev dependency我应该将摩根记录器安装为开发依赖项吗
【发布时间】:2020-09-21 06:11:54
【问题描述】:

我应该将 morgan 安装为普通的 dependency 还是 devDependency,因为无论如何我都不会在 生产 模式下使用日志记录:

if (config.NODE_ENV !== 'production') {
    app.use(morgan('dev', { stream: { write: message => logger.http(message) } }));
}

【问题讨论】:

  • 你可以将它安装为 devDependency,但你可能是通过上面的require 加载它
  • 是的,通过import

标签: node.js morgan


【解决方案1】:

假设config.NODE_ENVprocess.env.NODE_ENV 匹配,并且您通过npm install --production 或类似方式安装,那么您无需在dependencies 中包含morgan,只需将其包含在devDependencies 中即可。您应该在 if 语句中移动 requireimport 以防止错误。当您调用 requireimport 时,它会尝试从 node_modules 或模块缓存(如果已加载)加载。

if (config.NODE_ENV !== 'production') {
    const morgan = require('morgan');
    app.use(morgan('dev', { stream: { write: message => logger.http(message) } }));
}

也就是说,我个人会将其包含在 dependencies 中,并通过配置设置禁用日志记录,以防我想在我的生产环境中启用日志记录以调试某些内容。

【讨论】: