我开发了一个angular 4 Web应用程序,它包含3个组件,并且都是独立组件。
LoginPage
FormPage
Dashboard
LoginPage和FormPage是小的组件,但是Dashboard是一个很大的模块。
我的问题是我不想在登录页面上下载整个主捆绑包(1.5mb)(页面加载会花费更多时间下载整个内容)。我想在仪表板组件加载时下载与仪表板组件相关的JS文件块。
我正在使用ng-build --prod进行生产构建
是否可以根据组件拆分主包js?我也可以在供应商JS中进行相同的拆分吗?
答案 0 :(得分:0)
您可以使用Angular路由器loadChildren延迟加载模块。根据用户访问URL,将按需加载其相应模块。
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
const app_routes: Routes = [
{
path: 'login',
loadChildren: 'app/login/login.module#LoginModule'
},
{
path: 'dashboard',
loadChildren: 'app/dashboard/dashboard.module#DashboardModule'
},
{ path: '', pathMatch: 'full', redirectTo: '/login' },
{ path: '**', pathMatch: 'full', redirectTo: '/login' }
];
@NgModule({
imports: [RouterModule.forRoot(app_routes)],
exports: [RouterModule]
})
export class AppRoutingModule {}