lodash - 如何在 vite 中配置 lodash tree-shaking
问题描述
现在,我正在使用 Vite2.x 使用“rollup-plugin-visualizer”构建我的项目,我发现它构建了整个 lodash 包
解决方案
我发现这个问题是因为我遇到了类似的问题,也许这可以帮助将来遇到类似问题的人。
最简单的解决方法是使用如下导入:
import uniqueId from "lodash/uniqueId";
这可确保您在使用 lodash 函数时为生产包添加最小的占用空间。
另一种方法是使用lodash-es
可正确摇树的 lib,然后您可以使用:
import { uniqueId } from "lodash-es";
通过使用lodash-es
lib,您可以安全地导入函数,并且您的项目不会在生产构建中使用整个 lodash 源代码。
有什么不同?
为什么你可以安全地导入 uniqueIdlodash-es
而不是 from lodash
?
如果您比较uniqueId
源代码,您会注意到lodash-es
使用 ES 模块,而普通lodash
使用 CommonJS 模块。
由于 Vite 与 EcmaScript 模块一起工作,我认为只有那些是可摇树的(在他们的文档中找不到任何东西),CommonJS 模块通常更难摇树,你通常需要做一些变通方法来摇树。
有关 tree-shaking的更多信息。
推荐阅读
- sql-server - 由于日期格式无效,SSIS 包中的派生列出错。如何跳过这样的值?
- java - 有没有办法通过 Intent 或其他方式共享 *.json 文件?
- excel - 删除行时如何防止公式更改
- sparql - 列结果意外返回什么
- ios - 在 Swift 5 中获取字符串 md5
- php - 在 Hyn/多租户 Laravel 应用程序中未检索到租户特定文件
- angularjs-directive - 如何管理量角器以等待角度页面加载,其中角度 SPA 集成到另一个角度应用程序中作为 iFrame
- javascript - React Native FlatList 不呈现
- c# - Communicate between process in C#
- aggregate - 聚合所有列和 shapiro.test