如何使用webpack-node-externals

时间:2017-08-18 19:12:54

标签: javascript node.js webpack dependencies

我使用webpack使用target属性捆绑服务器资产。

这会产生一个可用的客户端捆绑包和一个可用的服务器,它工作得很好。然而,即使对于服务器代码,webpack似乎也在node_modules内捆绑所有内容。我正在尝试使用webpack-node-externals来解决此问题,如下所示:

module.exports = [
  {
    name: "server code, output to ./server",
    entry: "./servertest.js",
    output: {
      filename: "./server/index.js"
    },
    target: "node",
    externals: [
      nodeExternals({
        includeClientPackages: false
      })
    ]
  },
  {
    name: "client side, output to ./public",
    entry: "./app.js",
    output: {
      filename: "./dist/app.js"
    }
  }
]

但这并不起作用,因为它的默认行为是从捆绑中排除所有node_modules,从而使服务器无用。有一个白名单选项,我已经包含express,这是我的小测试用例的唯一依赖项。它在表达时不会失败,但它在表达式merge-descriptors的依赖性上失败了。当然,如果我将合并描述符添加到白名单,尝试启动服务器将失败的另一个依赖的快递。我肯定无法将每个依赖项和子依赖项(等等)添加到此白名单数组中。

如何在require构建期间确保webpack捆绑给定target: 'node'的所有依赖项?

0 个答案:

没有答案