我们的设置:
-角度5.2.x
-离子型4.4.x。
-网页包3.6.x
我们的应用程序结构如下:

app
  |__features
  |    |__Feature1
  |    |     |__Feature1Service.ts
  |    |     |__Feature1Dto.ts
  |    |     |__index.ts
  |    |
  |    |__Feature2
  |          |__Feature2Service.ts
  |          |__Feature2Dto.ts
  |          |__index.ts
  |
  |__core
       |__SomeCoreStuff.ts
       |__index.ts

在索引文件中,我们导出当前功能之外所需的所有内容,如下所示:
import { Feature1Service } from './Feature1Service';
import { Feature1Dto } from './Feature1Dto';
export const fromFeature1 = { Feature1Service, Feature1Dto };

其用法如下所示,例如在功能2中:
import { fromFeature1 } from '../Feature1';

//use Feature1Service but not Feature1Dto
fromFeature1.Feature1Service;

在这种情况下,只使用const fromFeature1上的一个属性。
我们的问题是,webpack的treeshaking是否删除了未使用的导出(在本例中是特性1dto)。如果不是的话,这会让我们部署的js包崩溃多少?

最佳答案

fromFeature1.Feature1Service是对象属性。它不是一个导出,如果使用fromFeature1则不能进行树震动。
为了使用摇树,应该:

export { Feature1Service } from './Feature1Service';
export { Feature1Dto } from './Feature1Dto';

07-24 17:42