Lodash树摇晃失败,角度中的打字稿

时间:2019-12-12 06:35:07

标签: angular typescript lodash tree-shaking

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

我尝试了几种方法来摇动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,而是仅导入其中的一部分。

enter image description here

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

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

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

1 个答案:

答案 0 :(得分:0)

我发现了问题所在。

问题是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年。

所以,我只是分叉了那个分支。