Webpack 优化导致 Bundle 大小增加

Posted

技术标签:

【中文标题】Webpack 优化导致 Bundle 大小增加【英文标题】:Webpack Optimizations Causing an Increase in Bundle Size 【发布时间】:2021-12-18 22:51:30 【问题描述】:

我注意到查看 Chrome Dev Tools 的 Coverage 工具中的捆绑代码,我的客户端捆绑包中包含很多未使用的代码,因此我对我可以进行的 webpack 优化进行了一些研究,并将这些添加到我的 Webpack配置。

        optimization: 
            usedExports: true,
            sideEffects: true,
            minimize: true,
            providedExports: true,
        ,

添加后,覆盖工具显示大小列大幅减少,未使用代码百分比减少,所以我认为它有效。我还检查了我之前看到的未使用的代码是否已从包中删除。然而,在部署应用程序时,我使用的监控工具显示包大小实际上增加了 2kb。我还尝试使用 Statoscope 插件,它显示捆绑包增加了 2kb。

鉴于似乎删除了未使用的代码并且捆绑包中的总行数也在减少,为什么这可能会增加捆绑包的大小,我有点不知所措。我也尝试将它放在其他应用程序中,并且我看到了相同的模式,其中 Coverage 选项卡显示大小大幅减小,但捆绑包大小实际上越来越大。

当捆绑包的大小实际上在增加时,Coverage 工具是否会显示大小减小?

【问题讨论】:

【参考方案1】:

似乎 webpack-dev-server 在内存中创建了自己的单独捆绑包,这与我的构建脚本生成的捆绑包不同,并且 webpack 在模式为“开发”时默认禁用摇树优化和当模式为“生产”时默认启用。我认为 webpack-dev-server 正在为我的构建脚本生成的 webpack 包提供服务,但它在开发模式下制作了一个包,这导致了我在 Statoscope 分析器和 Chrome Coverage 中看到的包大小存在差异工具。

【讨论】:

以上是关于Webpack 优化导致 Bundle 大小增加的主要内容,如果未能解决你的问题,请参考以下文章

定位webpack文件大小

vue项目性能优化系列

性能优化 - 查看 webpack 打包后所有的依赖关系(webpack 可视化工具)

webpack优化篇(四十一):体积分析:使用 webpack-bundle-analyzer

webpack.optimize.CommonsChunkPlugin has been removed, please use config.optimization.splitChunks ins

webpack开发环境速度优化