【问题标题】:Express, Pug and WebpackExpress、Pug 和 Webpack
【发布时间】:2017-12-02 23:49:16
【问题描述】:

我有一个使用 ExpressPug 的 Node js 服务器应用程序。我想将它捆绑到可以由pm2 部署的单个脚本中。这似乎有几个问题。

  1. 在运行时我收到Cannot find module "." 并且在编译期间收到一些消息,例如

./node_modules/express/lib/view.js 中的警告 80:29-41 严重 依赖:依赖的请求是一个表达式

出现来自动态导入,例如require(mod).__express。我假设 Webpack 无法静态解决这些问题,并且不知道要包含哪个依赖项。

如何解决?

  1. 如何使Pug 编译并成为输出js 的一部分?

【问题讨论】:

  • 我遇到了同样的问题。你找到方法了吗?
  • @ps-aux 我也在同一个bot,你找到解决办法了吗?

标签: node.js express webpack pug-loader


【解决方案1】:

这是因为 webpack 重新捆绑了node_modules(已经捆绑的)依赖,在 pug 的情况下,它不起作用。

您需要在 webpack 的 externals 选项中使用 webpack-node-externals 以明确要求不要重新捆绑依赖项。

  1. 安装 webpack-node-externals:npm i -D webpack-node-externals
  2. 将它集成到您​​的 webpack 配置文件中:

示例

// ...

const nodeExternals = require('webpack-node-externals')

module.exports = {
  target: 'node',

  entry: {
    // ...
  },

  module: {
    // ...
  },

  externals: [nodeExternals()],

  output: {
    // ...
  },
}

【讨论】:

    猜你喜欢
    • 2021-04-07
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多