Webpack 的 Tree Shaking 为什么没生效? Mc.万华 提问于 2026-03-05 05:35:17 阅读 19 工具 我用 Webpack 5 打了个包,明明只 import 了 lodash 的 debounce,结果整个 lodash 都被打进去了,Tree Shaking 好像没起作用。 我确认用了 ES6 模块语法:import { debounce } from 'lodash-es',也开了 production 模式,但 bundle 体积还是很大。是不是哪里配置漏了? 我来解答 赞 6 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 长孙纪娜 Lv1 这破问题我遇到过,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 加载更多 相关推荐 2 回答 34 浏览 为什么启用Webpack5的Tree Shaking后某些未用代码没被清除? 最近在升级项目到Webpack5时,按文档配置了Tree Shaking,但发现第三方库里的未使用方法还是被打包进bundle里了。明明在package.json加了"sideEffects": fa... 篷蔚的笔记 优化 2026-02-14 15:55:24 1 回答 69 浏览 为什么Webpack配置了Tree Shaking后,某些未引用的代码依然被打包进去? 我在项目里配置了Webpack的Tree Shaking,但发现未使用的模块还是被打包了。比如这个组件里只用了utils.js的add函数: // component.jsx import { add... 庆芳 Dev 优化 2026-02-13 11:56:35 2 回答 37 浏览 为什么我的Webpack配置了Tree Shaking还是没摇掉未使用的代码? 我在项目里按教程配置了Webpack的Tree Shaking,把mode设成production,也设置了optimization.usedExports为true,但打包后的bundle里还是能看... 程序员雨诺 优化 2026-02-08 23:03:41 1 回答 19 浏览 Webpack 开启 Tree Shaking 后,Vue 组件里的未使用方法为啥没被删掉? 我用 Webpack 5 + Vue 2 做项目,明明开启了 Tree Shaking,但发现一些没用到的 methods 还是被打包进去了,体积下不来。我试过把 mode 设成 production... 百里翌萌 前端 2026-02-27 14:19:21 1 回答 45 浏览 Babel配置会影响Tree Shaking效果吗? 我最近在优化项目打包体积,发现即使用了ES Module,Webpack的Tree Shaking好像也没生效。我怀疑是不是Babel的配置有问题,因为看到有人说Babel会把import/expor... 长孙淑宁 优化 2026-02-24 20:58:23 1 回答 19 浏览 为什么Webpack Tree Shaking没摇掉未使用的CSS样式? 大家好,我在优化项目时遇到个奇怪的问题。我按文档配置了Tree Shaking,但打包后的CSS里还是有很多没用的样式类。 比如这个组件只用了.red类,但打包结果里blue和green类也存在: /... 公孙东辰 优化 2026-02-16 18:45:28 2 回答 54 浏览 为什么我的模块未使用代码无法被Tree Shaking清除? 我在用Webpack打包项目时启用了Tree Shaking,但发现即使某些模块的方法没有被调用,打包后的文件里还是包含了它们。比如我定义了一个工具类:export function useA() {... 令狐梓豪 优化 2026-01-27 05:39:24 2 回答 27 浏览 为什么用lodash-es按需导入后Tree Shaking没减少打包体积? 我在项目里改用lodash-es想通过Tree Shaking减小体积,但打包后发现整个lodash都进去了... 按教程这样导入的: import { map, each } from '... UE丶熙然 优化 2026-02-07 13:05:36 1 回答 5 浏览 TypeScript 项目开启 strict 模式后 Tree Shaking 失效了? 我用 Vite + TypeScript 搭了个项目,之前 Tree Shaking 正常,但一开 strict: true 就发现打包体积变大了,没用的代码没被删掉。是不是 tsconfig 的配置... 程序猿奕瑞 优化 2026-03-05 12:12:18 1 回答 19 浏览 Webpack优化后打包体积没变化,哪里出问题了? 我在React项目里配置了Webpack的压缩和Tree Shaking,但打包体积还是很大。比如这个组件里只用了lodash的get方法: import _ from 'lodash... 闲人建杰 前端 2026-02-13 17:45:26
lodash-es,直接装lodash.debounce然后import debounce from 'lodash.debounce'完事。非要折腾的话,webpack.config.js加这个:
再确认package.json里有
"sideEffects": false。不过说实话,折腾这破玩意不如直接用单独模块来得快。