Webpack 的 Tree Shaking 为什么没生效?

Mc.万华 阅读 19

我用 Webpack 5 打了个包,明明只 import 了 lodash 的 debounce,结果整个 lodash 都被打进去了,Tree Shaking 好像没起作用。

我确认用了 ES6 模块语法:import { debounce } from 'lodash-es',也开了 production 模式,但 bundle 体积还是很大。是不是哪里配置漏了?

我来解答 赞 6 收藏
二维码
手机扫码查看
1 条解答
长孙纪娜
这破问题我遇到过,lodash就是个坑。懒人方案:别用lodash-es,直接装lodash.debounce然后import debounce from 'lodash.debounce'完事。

非要折腾的话,webpack.config.js加这个:

optimization: {
usedExports: true,
sideEffects: true
}


再确认package.json里有"sideEffects": false。不过说实话,折腾这破玩意不如直接用单独模块来得快。
点赞
2026-03-05 08:08