gpt4 book ai didi

webpack - 如何强制 WebPack 使用一个版本的模块(而不是 6 个不同的版本?)

转载 作者:行者123 更新时间:2023-12-04 08:40:43 24 4
gpt4 key购买 nike

在我们的项目中,Webpack-bundle-analyzer 插件表示该包使用特定模块(js 文件)6 次。

enter image description here

制作项目的最佳方式是什么,因为它只使用一个(而不是多个)?我知道它们可能来自依赖项的依赖项,但是应该如何解决这样的问题?


我可以手动检查我的应用程序是否存在代码中断,但目标肯定是使用一个 bn.js。我们的 package.json 不直接将其包含在任何依赖项中。

最佳答案

出现这种情况可能是因为您的应用(或其依赖项)需要同一库的不同版本。

不建议通过破解某些 Webpack 的配置来“强制”使用相同的版本(这是可能的)。语义版本控制是有意义的,如果 lib 遇到了主要版本,这意味着它包含重大更改

更好的方法是手动调整库(或其使用者)的版本。

您可以运行 yarn why lib-namenpm ls lib-name ,这将打印出一个依赖项列表,这些依赖项正在使用 lib 以及在哪个版本,这将帮助您升级依赖项以对齐版本。

如果你还想强制,可以查看这些解决方案https://github.com/webpack/webpack/issues/6505

  1. 使用yarn resolutions只安装一个版本。
  2. 使用 webpack 别名,将 lib-name 别名到特定路径(每个不同的版本都安装在消费者 node_modules 文件夹中)
  3. 强制 webpack 仅从应用 node_modules 解析
// webpack.config.js
module.exports = {
...
modules: [
path.join(__dirname, '../node_modules')
]
...
}

关于webpack - 如何强制 WebPack 使用一个版本的模块(而不是 6 个不同的版本?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64579239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com