angular-cli文档中的树抖动和死代码消除

时间:2017-09-11 14:48:29

标签: angular angular-cli

从下面的Angular-CLI documentation,我无法收集“有限的”树摇动或死代码消除的含义。这是否意味着我们不应该依赖angular-cli提供的树抖动和死代码消除抽象?

捆绑&树摇动

所有版本都使用捆绑和有限树木抖动,而--prod版本也通过UglifyJS运行有限死代码。

另一个文档问题  似乎--prod为free提供了--aot标志。这意味着如果您的构建是--prod,则代码已预先编译到Javascripts中。但是,从-aot特定文档(如下所述)看来,默认的aot标志似乎是 false 。有这些旗帜的经验吗?

AOT - aot默认值:false

1 个答案:

答案 0 :(得分:1)

我最近有同样的问题,所以这是我的研究结果。

  • Tree-shaking删除依赖项注入(DI)定义的依赖项。

      

    摇树是指编译器选项,如果应用程序中未引用该代码,则该代码将从最终捆绑包中删除代码。

  • 由UglifyJS执行的dead code elimination是后处理步骤,它删除了无法访问的代码(例如,返回后的代码)。

      

    dead_code(默认值:true)-删除无法访问的代码

自Angular CLI 6起,已对构建系统进行了全面改进,使其更易于配置。 Build configuration选项已移至工作区配置文件(angular.json)。

  

当您使用   CLI创建项目,您可以通过以下方式使用该配置   指定--prod选项。

默认开发环境和生产之间的区别在于,开发配置使用CLI缺省值(例如源映射),而生产配置则启用AOT,优化等。--prod元标记针对“生产”配置并启用runtime production mode

  

切换到生产模式可以通过禁用来加快运行速度   开发特定的检查,例如双重变更检测周期。