Express、Pug和Webpack

4

我有一个使用ExpressPug的Node.js服务器应用程序。 我想将其捆绑到单个脚本中,以便可以通过pm2部署。 但是这似乎存在几个问题。

  1. 在运行时我收到Cannot find module "."的错误,编译期间出现一些消息,例如:

WARNING in ./node_modules/express/lib/view.js 80:29-41 Critical dependency: the request of a dependency is an expression

这些消息来自像require(mod).__express这样的动态导入。 我认为Webpack无法静态解析它们,并且不知道包含哪个依赖项。

如何解决这个问题?

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

1
我遇到了同样的问题。你找到解决方法了吗? - Tomasz Jaskuλa
@ps-aux 我也遇到了同样的问题,你找到解决方案了吗? - Mo.
1个回答

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: {
    // ...
  },
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接