3

我已经使用 ngc 编译器成功创建了 .ngfactory 文件,并且还使用“platformBrowser().bootstrapModuleFactory(AppModuleNgFactory)”更新了我的 main.ts。

应用程序.routes.ts

const appRoutes: Routes = [
    { path: '', loadChildren: 'app/starter/starter.module#StarterModule' },
    ...
    ...
    ...
];

export const appRoutingProviders: any[] = [

];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);

现在,当我使用“ng build -prod && ng serve -prod”为我的应用程序提供服务时,它成功托管。但是,当我在浏览器上打开它时,我的控制台向我显示此错误“异常:未捕获(承诺中):错误:找不到模块 'app/starter/starter.module.ngfactory'。”

当我检查我的目录时,文件“确实”存在但找不到它。有没有人面临这个问题?如果是,那么如何解决呢?谢谢。

我正在使用 Angular-cli beta 14。

4

1 回答 1

1

aot 输出仅采用您在 tsconfig-aot.json 中的 files-array 中添加的文件。所以一定要在那里添加你所有的模块,包括那些延迟加载的模块。因为除了路由器中的“loadChildren”之外,它们不再通过应用程序本身包含在内。

 "files": [
"app/app.module.ts",
"app/starter/starter.module.ts",
"app/main.ts"  ],

之后在 AoT 文件夹中应该编译所有模块。之后,您可以在“aot”文件夹(或构建编译的文件夹)中获取输出并进行 treeshaking 等。

可以在此处找到使用 webpack 的示例,但没有 angular-cli:

https://github.com/FabianGosebrink/ASPNET-ASPNETCore-AngularJS-Angular/tree/master/Angular-Client-Webpack

于 2017-02-06T11:44:30.680 回答