在我们的项目Webpack-bundle-analyzer
插件中,该捆绑包使用特定模块(js文件)6次。
制作项目的最佳方法是什么,因为它仅使用一个(而不是多个)?我知道它们可能来自于依赖关系,但是应该如何解决此类问题?
我可以手动检查我的APP以发现可能的代码中断,但是可以肯定的是使用一个bn.js
。我们的package.json
不直接在任何依赖项中包含它。
发生这种情况的原因可能是您的应用(或它的依赖项)需要同一个lib的不同版本。
不建议通过破解某些Webpack的配置来“强制”使用同一版本(可能)。 语义版本控制有一个含义,如果lib碰到了主要版本,则意味着它包含重大更改。
更好的方法是手动对齐lib(或其使用者)的版本。
您可以运行yarn why lib-name
或npm ls lib-name
,这将为您打印消耗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')
]
...
}