我们的设置:
-角度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';