如何在角度2 +

时间:2018-05-03 14:22:25

标签: angular lazyload angular2-compiler

我想知道有没有办法从具有多个模块的应用程序构建特定模块。

例如,我在应用程序中有模块a,b和c,但我的客户端只需要b和c。我不想编译所有模块并删除不需要的块,以寻找编译仅作为命令或其他东西传递的块的方法。

任何帮助高度赞赏。

2 个答案:

答案 0 :(得分:1)

您可以使用路由器功能在您的应用程序中延迟加载子模块。

这将为您的应用程序创建模块的单独JS块。

不幸的是,所有内容都将被编译,因为您无法在导入等中轻松删除链接,但如果您的用户没有在您的应用中访问这些模块,则不会下载或解析您的模块。

以下是关于此的官方文档链接:

N.B:在此示例中,使用基本模块的整个应用程序是延迟加载的,这不是一个好习惯。只有可能无法访问的子模块才会延迟加载。

答案 1 :(得分:0)

使用以下结构。

使用CommonModule代替BrowserModule

import { CommonModule } from '@angular/common';
import { NgModule } from "@angular/core";

import { LastTableComponent } from './last-table.component';

@NgModule({
    imports: [
      CommonModule,          
    ],
    exports:[
      LastTableComponent,
    ],
    declarations: [
      LastTableComponent,
    ],
    providers: [     
    ]

  })
export class LastTableModule { }