Bundle分析工具显示第三方库体积异常,怎么排查具体来源?
最近在优化Vue项目时用webpack-bundle-analyzer做Bundle分析,发现第三方库总占比高达70%,但具体到每个包都显示[name]@^[version],完全看不出具体是哪些库?
尝试过在webpack配置里这样设置:
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
module.exports = {
plugins: [
new BundleAnalyzerPlugin({
generateStatsFile: true,
statsOptions: { source: false }
})
]
};
分析报告里的第三方库节点都像这样模糊显示:[name]@[version],实际想知道是lodash还是axios占用了空间。查了文档没找到配置项能解决这个问题,有遇到过类似情况吗?
关键点是把Terser的mangle关掉,这样就不会混淆类名和函数名。另外建议你同时打开package.json看看dependencies和devDependencies,有些包可能被错误地打包进来了。
如果还是不行,可以试试这个命令,能帮你快速定位哪些包被引用了:
npm ls --prod --parseable | grep -v node_modules实在找不到问题的话,直接在node_modules里全局搜索[name]@[version]这种格式,基本就能定位到是哪个包了。虽然土但很管用。