通过模块减少 Lodash 导入/包大小
Reducing Lodash imports / bundle sizes via module
所以我正在努力减少包的大小,从一个常见的罪魁祸首 -- Lodash 开始,在我进行的过程中有点遵循这个 article 因为显然这不是理想的;
所以我开始尝试执行基本任务,即导入实际使用的模块,例如从 import * as _ from 'lodash'
到 import each from 'lodash/each'
除了这样做我得到了例子.../node_modules/@types/lodash/each"' has no default export.
这很令人困惑,因为我在那里看到导出,我在那里有我的@types,显示一切都应该没问题,但我显然失踪了一些空洞的细节。因为我的模块是 es2015
,所以我必须使用 lodash-es
吗?我是否理解这就是为什么 tsconfig
中的 esModuleInterop
设置为 true 会吐在我身上?我想我只是在寻找我显然遗漏的任何细节。
Angular 6/命令行
目标:es5
模块:es2015
这是 tree-shakeable 导入:
import each from 'lodash-es/each';
如npm package
所述,它实际上只是原始包的 ES6 模块导出:
The Lodash library exported as ES modules.
Generated using lodash-cli:
$ lodash modularize exports=es -o ./
See the package source for more details.
可以在此处找到进一步的解释:
所以我正在努力减少包的大小,从一个常见的罪魁祸首 -- Lodash 开始,在我进行的过程中有点遵循这个 article 因为显然这不是理想的;
所以我开始尝试执行基本任务,即导入实际使用的模块,例如从 import * as _ from 'lodash'
到 import each from 'lodash/each'
除了这样做我得到了例子.../node_modules/@types/lodash/each"' has no default export.
这很令人困惑,因为我在那里看到导出,我在那里有我的@types,显示一切都应该没问题,但我显然失踪了一些空洞的细节。因为我的模块是 es2015
,所以我必须使用 lodash-es
吗?我是否理解这就是为什么 tsconfig
中的 esModuleInterop
设置为 true 会吐在我身上?我想我只是在寻找我显然遗漏的任何细节。
Angular 6/命令行
目标:es5
模块:es2015
这是 tree-shakeable 导入:
import each from 'lodash-es/each';
如npm package
所述,它实际上只是原始包的 ES6 模块导出:
The Lodash library exported as ES modules.
Generated using lodash-cli:
$ lodash modularize exports=es -o ./
See the package source for more details.
可以在此处找到进一步的解释: