通过模块减少 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.

可以在此处找到进一步的解释: