在我们的项目Webpack-bundle-analyzer
插件中说捆绑使用特定模块(js文件)6次。
制作项目的最佳方法是什么,因为它只使用一个(而不是多个)?我知道它们可能来自依赖项的依赖,但是应该如何解决这样的问题呢?
我可以手动检查我的 APP 是否存在可能的代码中断,但目标肯定是使用一个bn.js
. 我们package.json
不直接将它包含在任何依赖项中。
在我们的项目Webpack-bundle-analyzer
插件中说捆绑使用特定模块(js文件)6次。
制作项目的最佳方法是什么,因为它只使用一个(而不是多个)?我知道它们可能来自依赖项的依赖,但是应该如何解决这样的问题呢?
我可以手动检查我的 APP 是否存在可能的代码中断,但目标肯定是使用一个bn.js
. 我们package.json
不直接将它包含在任何依赖项中。
发生这种情况可能是因为您的应用程序(或其依赖项)需要同一库的不同版本。
不建议通过破解一些 Webpack 的配置来“强制”相同的版本(这是可能的)。语义版本控制是有含义的,如果库碰到了主要版本,这意味着它包含重大更改。
更好的方法是手动对齐 lib(或其使用者)的版本。
您可以运行yarn why lib-name
,或者npm ls lib-name
which 将打印一个正在使用 lib 的依赖项列表以及哪个版本,这将帮助您升级依赖项以对齐版本。
如果还想强制,可以查看这些解决方案https://github.com/webpack/webpack/issues/6505
yarn resolutions
安装一个版本。lib-name
为特定路径(每个不同的版本都安装在消费者node_modules
文件夹中)node_modules
解析// webpack.config.js
module.exports = {
...
modules: [
path.join(__dirname, '../node_modules')
]
...
}