

内容声明
本文仅用于技术分享和学习交流,内容不包含任何广告、推广、引流、付费课程或外链信息。所有示例和配置均为技术实践,欢迎参考和自定义。
使用 webpack-bundle-analyzer 可可视化分析构建产物并生成 stats.json,帮助定位体积来源。结合 ESBuild 或 SWC 加速转译、优化 Terser 参数、配置 Tree Shaking 与 sideEffects、压缩图片、替换大型依赖,可有效缩小最终 bundle 并提升构建性能。
npm i -D webpack-bundle-analyzerwebpack.analyzer.js
const { merge } = require('webpack-merge');
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
const common = require('./webpack.common');
module.exports = merge(common, {
mode: 'production',
plugins: [
new BundleAnalyzerPlugin({
analyzerMode: 'server', // 交互式可视化界面
openAnalyzer: true, // 自动打开浏览器
generateStatsFile: true, // 输出 stats.json 便于深度分析
statsFilename: 'stats.json'
})
]
});npx webpack --config webpack.analyzer.js
替代 Babel 可显著降低构建时间与输出体积。
loader: 'esbuild-loader'webpack5 默认已集成 Terser,但可调整参数进一步缩小体积。
确保 package.json 中声明:
"sideEffects": false如果有副作用的文件,可单独列出:
"sideEffects": [
"*.css",
"*.scss",
"./src/initGlobal.js"
]并避免在模块中使用影响静态分析的语句,例如:
eval()、with、for...in使用 image-minimizer-webpack-plugin + squoosh 压缩图片资源。
更新记录
本文首次编辑于 2021-01-04,最近更新于 2025-11-26。
版权声明
本文为原创文章,作者保留版权。转载请保留本文完整内容,并以超链接形式注明作者及原文出处。
作者: 除除
原文: http://blog.mazey.net/1781.html
(完)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。