在AppModule中导入不必要的模块是否会降低Angular 2应用的速度?

时间:2019-02-20 10:46:02

标签: javascript angular angular2-modules

在angular(2/4/6)应用程序中,如果我们在应用程序模块中导入不必要的模块,则会降低应用程序的速度。

对应用程序的性能有影响吗?

@NgModule({
  imports: [
    BrowserModule.withServerTransition({ appId: 'myId' }),
    FormsModule,
    AppRoutingModule,
    HttpClientModule,
    HttpClientInMemoryWebApiModule,
    AaModule,
    BbModule
  ],
  declarations: [
    AppComponent,
    AdminComponent
  ],
  providers: [  ],
  bootstrap: [ AppComponent ]
})

3 个答案:

答案 0 :(得分:3)

Yomateo正确地说,在执行构建时,摇树将照顾未使用的模块/模块操作员。

  

摇树器从上到下遍历依赖关系图,并摇晃掉树中的枯叶等未使用的代码

然而,执行构建所花费的时间有所不同,因为构建包含更多模块的应用需要花费更长的时间,即使它们从未使用过,并且如果导入了更多的模块,构建规模也会更大。 / p>

因此,回答您的问题不会影响性能,但是会影响构建时间和构建大小。

Source

答案 1 :(得分:2)

导入不必要的模块会大大增加应用程序的大小。 它也适用于您可能要使用的任何角度模块, 包括第三方。

答案 2 :(得分:2)

如果您导入模块而从不使用它,则它将被遗留下来。这是编译器提供的“摇树”的最大优点之一。也称为“死代码”。

另一方面,从模块中引用不必要的代码会增加您的分发大小(或您称其为膨胀),并且还要求浏览器将此代码读入内存。