【问题标题】:Can webpack exclude a single file in a node module from bundleing?webpack 可以从捆绑中排除节点模块中的单个文件吗?
【发布时间】:2020-11-17 15:41:18
【问题描述】:

在我的项目中,我有一个强制节点模块/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 尝试了很多东西,但根本没用。在此处输入代码

【问题讨论】:

    标签: webpack node-modules


    【解决方案1】:

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

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

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

    // package.json
    
    "scripts": {
      "postinstall": "patch-package"
    }
    

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

    【讨论】:

    • 感谢您的解决方案!我已经在我客户的其他团队中为该错误创建了一个问题(该模块是特定于客户的,所以我更改了名称)以修补该模块。由于他们的开发周期非常长,我想暂时排除它。
    • 思路是给consumer包中的包打补丁,这就是patch-package的目的。
    猜你喜欢
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 2018-11-06
    • 2021-11-16
    • 1970-01-01
    相关资源
    最近更新 更多