【问题标题】:lodash tree shaking failed with typescript in angularlodash树摇晃失败,打字稿在角度
【发布时间】:2020-04-05 12:18:19
【问题描述】:

我有一些使用打字稿的大项目。

我尝试了几种方法来摇树 lodash。

我觉得还是先看看我的工作成果吧。

我的构建命令是

构建命令

ng build --stats-json
webpack-bundle-analyzer {{stats.json path}}

custom_loadsh.ts

export { forEach } from 'lodash/forEach';
export { cloneDeep } from 'lodash/cloneDeep';
...
..
.

app.component.ts

import * as _ from './custom_lodash';
export class AppComponent implements OnInit {
   ...
   ngOnInit() {
       let data = {
          test: 1  
       };
       let data2 = _.cloneDeep(data);
   }
   ...
}

不是通过custom_lodash获取整个lodash,而是只导入其中的一部分。

当然,上面的示例代码与实际项目有些许不同,但总体配置是一样的。

我想知道为什么 lodash 树摇晃会失败。

这是我引用的网站。 https://medium.com/@martin_hotell/tree-shake-lodash-with-webpack-jest-and-typescript-2734fa13b5cd

【问题讨论】:

  • 这不是预期的行为吗?
  • @Vega 抱歉我的错误我已经编辑过了
  • @Vega 不。我贴出了我引用的网站。正如那篇专栏所说,lodash.js 已经消失了,应该只导入了几个文件。
  • 当你已经对 forEachJSON.parse(JSON.stringify(data)) 提供了原生支持时,为什么还要使用 Lodash 来处理 forEachcloneDeep 函数?
  • 哎哟......如果我只使用那个功能,你肯定是对的。那是示例代码。我的实际代码使用 lodash 函数超过 10。其中一些函数不支持 js native

标签: angular typescript lodash tree-shaking


【解决方案1】:

我发现了问题所在。

问题出在 node_modules 中的另一个包。

在我的例子中,ngx-treeview 包使用 lodash。

这是ngx-treeview中的示例代码

import { isNil, isString } from 'lodash';

所以,我会在下面尝试。

import isNil from 'lodash/isString';
import isString from 'lodash/isNil';

但是..这个解决方案是暂时的。

我会尝试向ngx-treeview github 报告问题。不幸的是,最后一次编辑该软件包超过 1 年。

所以,我只是 fork 那个分支。

【讨论】:

    猜你喜欢
    • 2021-11-26
    • 2021-07-17
    • 2016-11-27
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    相关资源
    最近更新 更多