首页 > 解决方案 > 保持包大小精简并保持所有内容结构化的最佳实践是什么?

问题描述

我有点困惑,因为我现在正在启动一个新项目,并且我正在尝试更多地关注捆绑包的大小并更深入地了解 Angular 模块化系统。

我开始在互联网上搜索一些信息,但信息因资源而异。

任何人都可以为我澄清这几个问题吗?

  1. 假设我有一个共享模块并保留我所有的共享内容,然后将其导出并在应用程序的其他地方重复使用。如果我只使用其中的 2 个 x 模块或指令,那么从共享模块导入的其余部分会发生什么?会被树摇晃吗?或者它会为这些组件、指令和东西中的每一个创建一个新的 id,并增加复制项目的包大小?

  2. 据我了解,模块没有层次结构,因为在编译阶段它被合并到一个平面模块中。它对重复的项目没有帮助吗?或者哪一个赢得了合并战,最深的还是最后一个导入的?

  3. 目前 Ivy 还没有被完全支持,你不能逃避 SCAM 模块来减小包的大小,对吧?我的意思是目前您仍然需要在每个组件中创建一个 SCAM 模块,您将在其中包含它所需的所有依赖项 - 所以到目前为止有很多手动和例行工作,对吧?

我很高兴听到您的经验和想法

标签: angularbundleivy

解决方案


推荐阅读