我几乎不需要澄清角度cli的死代码消除/树抖动。
我打算使用ngZorro ui库。根据文档,我需要在我的app.module文件中导入NgZorroAntdModule。它包含它提供的所有组件。现在,如果我仅使用其中的一些组件,Angular cli仍将所有组件捆绑在我最终的产品构建中。
我尝试单独导入需要的模块,它可以正常工作,但是我仍然想知道角度cli的树抖动/死代码消除是否将未使用的模块删除,即使它已导入app.module中。
以下是我检查过的类似内容。
我在app.module.ts中 包含了Material Modules下面的内容,但是我只使用了mat-raised-button,它是我代码中MatButtonModule的一部分。
这是我使用source-map-explorer分析时获得的主要捆绑包中的内容
尽管我在app.module.ts中包含了菜单,工具栏,图标和FormField模块,但是由于我没有在代码中使用它们,因此它们并未包含在webpack捆绑包中。
这是我使用的构建配置-
ng build --prod --build-optimizer --vendor-chunk --progress --output-hashing = all --stats-json --source-map = true
您可以使用诸如
webpack-bundle-analyzer,source-map-explorer之类的工具分析生成的包,以查看包中包含的模块。
--source-map=true
优化构建包还取决于您用于生产构建的标志。有关可以使用的标志的详细信息,
请参阅Angular Build文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句