所以当在Angular-CLI app中遇到麻烦时.
这是发生的事情:
ng serve,不ng serve --aot产生例外,一切正常.只ng serve --prod在浏览应用程序时运行休息时间.
正在寻找答案,并发现这些不是,所以我在应用程序中的每个属性之前写了'public'并检查提供程序中是否有函数调用,但没有任何改变.
接下来我尝试用--aot旗帜运行它并且工作得很好,但是在--prod出现相同错误时仍然崩溃.
它在runnig登录过程中完全崩溃,这是:
奇怪的是,我到处都有类似的过程,但它在确切的位置崩溃了.
可以请有人给我一些信息,我应该在哪下挖?干杯!
更新:我在登录过程的每个部分都在切断代码,然后用--prod它构建它,结果发现来自@ angular/material的MatDialog产生了错误.在MatDialog登录组件使用afterClosed()挂钩到其父级解析后触发登录,并以某种方式产生异常.
因此,触发弹出窗口的父级是HeaderComponent,其中包含方法:
openLoginDialog(): void {
this.authService.login();
const dialogRef = this.dialog.open(LoginDialogComponent);
dialogRef.afterClosed().subscribe(result => {
if (result) {
this.authService.login();
}
});
}
Run Code Online (Sandbox Code Playgroud)
在LoginDialogComponent里面是简单解决的方法:
login(login, password) {
this.authService.tryLogin(login, password).subscribe(data => {
this.dialogRef.close(true);
});
}
Run Code Online (Sandbox Code Playgroud)
在我删除MatDialog后,另一个单词摆脱了项目中唯一的弹出窗口,错误消失了.我已经创建了另一个具有自己的Login表单路由的组件,但仍然认为删除整个工作模块是因为构建错误不是解决方案.
我的package.json:
"dependencies": {
"@angular/animations": "^5.0.2",
"@angular/cdk": "^5.0.0-rc.1",
"@angular/common": "^5.0.0",
"@angular/compiler": "^5.0.0",
"@angular/core": "^5.0.0",
"@angular/flex-layout": …Run Code Online (Sandbox Code Playgroud)