角延迟加载-看不到它正在工作

时间:2019-01-09 06:06:36

标签: javascript angular typescript lazy-loading

我定义了一个延迟加载模块。

这是SettingsRoutingModule模块-

 const routes: Routes = [
        {
            path: '',
            component: SettingsStandaloneComponent,
            children: [
                {
                    path: '',
                    redirectTo: 'profile',
                    pathMatch: 'full'
                },
                {
                    path: 'profile',
                    component: SettingsProfileComponent
                },
                {
                    path: 'about',
                    component: SettingsAboutComponent
                },
                {
                    path: 'affiliations',
                    component: SettingsAffiliationsComponent
                },
                {
                    path: 'communication',
                    component: SettingsCommunicationComponent
                },
                {
                    path: 'notifications',
                    component: SettingsNotificationsComponent
                },
                {
                    path: 'proxies',
                    component: SettingsProxiesComponent
                },
                {
                    path: '**',
                    redirectTo: 'profile',
                    pathMatch: 'full'
                }
            ]
        }
    ];

    @NgModule({
        imports: [RouterModule.forChild(routes)],
        exports: [RouterModule]
    })
    export class SettingsRoutingModule { }

在AppRoutingModule模块中-

{ path: 'settings',
    loadChildren: './settings/settings.module#SettingsModule',
    canActivate: [AuthGuard],
},

在产品生产中,当进入网络时,我看不到每个人都应该出现的“ chunk.js”。“只有两个看起来像的文件-0.34016a93d44e785b623a.js

在我的本地主机中,我仅看到“ settings-settings-module.js”

可以吗?或者这意味着我的模块不是很懒?

2 个答案:

答案 0 :(得分:4)

由于在angular.json中使用了该选项"namedChunks": false,因此您将不再看到命名的块,而是显示哈希值作为文件名。这是由于对angular / cli的最新改进(不确定何时)。

答案 1 :(得分:1)

是的,还可以,我们不再看到chunk.js。如您所提到的,延迟加载的模块的名称随即出现在“网络”选项卡中,并且第一次仅出现一次。要再次查看,请点击“网络”标签左上角的圆圈,并在其中划一条线,清除所有内容:

Lazy loaded module