为什么用了 lodash-es 还是没法 tree shaking 掉没用的函数?

皇甫建英 阅读 10

我项目里只用了 lodash-esdebounce,按理说其他函数应该被 tree shaking 掉,但打包后体积还是很大。我用的是 Vite + Vue3,默认配置应该支持 ES module 吧?也确认了导入方式是 import { debounce } from 'lodash-es',不是整个库引入。

是不是还需要额外配置?或者我的构建工具根本没生效?下面是我试的一个简单样式,跟问题无关,但页面里确实只引用了这一个工具函数:

.btn {
  padding: 8px 16px;
  background: #007bff;
  color: white;
  border: none;
  border-radius: 4px;
}
.btn:hover {
  opacity: 0.9;
}
我来解答 赞 8 收藏
二维码
手机扫码查看
1 条解答
皇甫宇彤
哎...这问题我也遇到过。试试在vite.config.js里加这个:

optimizeDeps: {
exclude: ['lodash-es']
}


顺便确认下你的package.json里lodash-es版本是不是>=4.17.21,老版本tree shaking有问题。
点赞
2026-03-08 18:00