用 lodash-es 摇树

Posted

技术标签:

【中文标题】用 lodash-es 摇树【英文标题】:Tree shaking with lodash-es 【发布时间】:2021-07-17 08:34:43 【问题描述】:

我正在尝试使用 webpack 为我们的包配置摇树。我希望用lodash-es 替换lodash。我知道有一些 webpack 插件可以启用 lodash tree-shaking,但我希望直接访问 lodash-es,因为我们的 webpack 配置有点复杂。

当我查看包大小时,我注意到当我使用绝对路径(例如:import merge from 'lodash-es/merge')而不是使用命名导入(例如:import merge from 'lodash-es')时,包要小得多。

这是一种预期的行为,还是更多地表明未正确配置 tree-shaking?

【问题讨论】:

【参考方案1】:

这应该是正确的摇树:

lodash-es/package.json 设置sideEffects: false,至少在当前版本中

您可以检查的其他事项:

如果您进行了优化 - 可能是开发版本,并且尚未完成摇树操作 如果您有 babel 或其他工具将您的 es-module 转换为不适用于 treeshaking 的东西。

【讨论】:

以上是关于用 lodash-es 摇树的主要内容,如果未能解决你的问题,请参考以下文章

为啥 webpack 在使用“import * as _”时不会对 lodash 进行摇树?

Webpack es2015 用 React 摇树

摇树创建反应应用程序?

Lodash:有没有办法用 lodash 将单词保持重音大写?

使用 webpack 和 typescript 摇树

如何使用 WebPack 或 Rollup 摇树 Three.js?