棱角分明的材料模块是否自动摇树



我看到有角度的材料单个模块以两种方式导入。

  1. 将所有角度材料模块(MatButtonModule、MatRadioModule等(导入到一个巨大的角度材料模块中,然后将该模块导入到任何需要一些角度材料的角度模块中
  2. 将各个材料模块导入到使用的相应模块中。例如,我将在我的RegistrationModule(用户填写注册表(中导入ReactiveFormsModule,但我不会在其他没有表单的惰性加载模块中导入它

第二个选项在我看来很乏味,很难维护,所以我更喜欢第一个选项。然而,我希望最终的束大小尽可能小。


这就引出了我的问题:


棱角分明的材料模块是否自动摇树
换句话说,当我将巨大的angular.material.module.ts导入到我的懒惰加载模块中时,最终的捆绑包会包含相应模块中未使用的有角度的材料模块吗?


我应该坚持第二个选项,还是可以把它全部塞进巨大的有角度的材料模块?

不,这很糟糕,不要这样做。

以下是关于该主题的研究:https://indepth.dev/stop-using-shared-material-module/

基本上,若这样的魔法是可能的,并没有人会费心将材料库拆分为模块的音调,通常每个人都会制作一个巨大的模块,并希望编译器能够理解如何处理这个模块。

也许在未来,有了更多与Ivy相关的东西,这将是可能的,但现在,它可能会排除一些服务和组件或纯功能,也许不会。

即使它会——写代码通常是不好的做法,但从逻辑上讲,这不应该存在。

相关内容

最新更新