webpack 可以从捆绑中排除节点模块中的单个文件吗?

Can webpack exclude a single file in a node module from bundleing?

在我的项目中,我有一个强制节点模块/node_modules/@scope/theme。由于未知原因,它包含一个异步函数的示例,对 this is how you do async functions 这样的注释什么都不做。 它位于 /node_modules/@scope/theme/build/module/lib/async.js,这会导致 IE11 出现问题。 现在我想将它从我的 webpack 包中排除,但我就是没有完成它。

我用 module.rules.excludetried module.exports.externals 尝试了很多东西,但是在 all.enter 代码这里没有用

更好的方法是修补库,我正在使用 patch-package 这样做。

只需修改 node_modules 中的文件,然后修改 运行 npx patch-package @scope/theme - 它会在 patches 文件夹中创建一个 diff 文件。

为了在您 CI(或其他开发人员)中应用相同的补丁,您应该 运行 patch-package 在安装后挂钩中。

// package.json

"scripts": {
  "postinstall": "patch-package"
}

这将在您安装 lib 的依赖项时应用补丁(已提交)。