即使在app.module中导入了不使用的模块并且不使用它,angular-cli也会删除未使用的模块吗?

马诺吉

我几乎不需要澄清角度cli的死代码消除/树抖动。

Github

我打算使用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-analyzersource-map-explorer之类的工具分析生成的包,以查看包中包含的模块

  • 您需要生成stats.json文件,然后可以使用webpack-bundle-analyzer进行分析
  • 对于source-map-explorer,您需要使用以下命令生成prod构建--source-map=true

优化构建包还取决于您用于生产构建的标志。有关可以使用的标志的详细信息,
请参阅Angular Build文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何修复Angular不使用显式注释并且不能在严格模式下调用

如何使用importlib.import_module在Python中导入模块

放置不重叠的随机圆(并且不使用蛮力)?

即使不使用,也可以去保持包装

Java不使用导入

即使类型是内部的,并且存在于同一模块中,Swift也会“使用未声明的类型”

jlink不使用自动模块

即使使用最新的构建工具,任务':app:processDebugResources'的执行也会失败

从外部模块“汇总”中导入了“默认”,但从未使用过

在Google App脚本中使用导入的模块

在app.module.ts中导入外部模块

如何在Angular 4.x(Angular Cli)App中导入RequireJS(AMD)模块?

跟踪用户的位置(即使他们不使用它)并不断将其更新到Firebase

导入我不使用的模块

如何使用ModuleWithProviders在Angular Module中导入其他模块

仅克隆.gitmodules中的某些模块,并且不使用分支配置

导入未使用的JS模块时,我们会“丢失”某些东西吗?

即使不使用JSON文件也将被捆绑

无法将Flask应用程序部署到Heroku(Heroku尝试安装SQlite,即使我根本不使用它)

不使用Angular模块导入模块的潜在缺点?

即使我不使用ClassNotFoundException

如何在不使用导入的情况下导入导入其他模块的模块*

硬盘即使不使用也会不断发出噪音

std :: enable_if使用其内部类型且不使用它

Bootstrap Dropdown即使已经导入了脚本也无法使用

执行ffmpeg并且不使用他们的库可以吗?

使用或不使用 forRoot 导入模块

我的媒体存储硬盘在我的笔记本电脑中不断旋转,即使我不使用它

expressjs - 即使不使用也请求正文更改