所以当你遇到这种麻烦的时候-CLI应用程序。
下面是发生的情况:ng serve,ng serve --aot不产生异常,一切正常。在浏览应用程序时,只有运行ng serve --prod才会中断。
在搜索答案时,我找到了这些不是,所以我在app中的每个属性之前都写了“public”,并检查提供者中是否有函数调用,但是没有什么改变。
接下来,我尝试使用--aot标志运行它,并且运行得很好,但是在--prod有相同错误的情况下仍然崩溃。
它在运行登录进程时完全崩溃,即:
奇怪的是,我在任何地方都有类似的过程,但它在确切的位置崩溃了。
请有人给我提供一些关于我下一步应该在哪里挖掘的信息。干杯!
更新:我在代码中切断了登录过程的每一个部分,然后用--prod构建了它,结果发现来自@ single /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();
}
});
}在LoginDialogComponent内部是一种简单的解析方法:
login(login, password) {
this.authService.tryLogin(login, password).subscribe(data => {
this.dialogRef.close(true);
});
}换句话说,在我删除了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": "^2.0.0-beta.10-4905443",
"@angular/forms": "^5.0.0",
"@angular/http": "^5.0.0",
"@angular/material": "^5.0.0-rc.1",
"@angular/platform-browser": "^5.0.0",
"@angular/platform-browser-dynamic": "^5.0.0",
"@angular/platform-server": "^5.0.0",
"@angular/router": "^5.0.0",
"@ngrx/store": "^5.0.0",
"@nguniversal/common": "^5.0.0-beta.5",
"@nguniversal/express-engine": "^5.0.0-beta.5",
"@nguniversal/module-map-ngfactory-loader": "^5.0.0-beta.5",
"core-js": "^2.4.1",
"hammerjs": "^2.0.8",
"ngrx-store-freeze": "^0.2.0",
"primeng": "^5.0.2",
"rxjs": "^5.5.2",
"tassign": "^1.0.0",
"zone.js": "^0.8.14"
},
"devDependencies": {
"@angular/cli": "^1.6.2",
"@angular/compiler-cli": "^5.0.0",
"@angular/language-service": "^5.0.0",
"@types/jasmine": "~2.5.53",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "~3.2.0",
"jasmine-core": "~2.6.2",
"jasmine-spec-reporter": "~4.1.0",
"karma": "~1.7.0",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.2",
"ts-loader": "^2.3.7",
"ts-node": "~3.2.0",
"tslint": "~5.7.0",
"typescript": "~2.4.2"
}发布于 2019-11-11 14:03:00
通过点击下面的命令,您可以检查确切的问题在哪里。
ng build --prod --source-map=true有一种可能性,这将不会锻炼你,但我希望这可以。这个问题背后的原因是捆绑了一个js文件,而js文件已经缩小了。如果您发现有任何包正在创建该问题,请尝试删除它们以修复。
发布于 2020-03-02 03:17:28
--prod选项将激活项目文件夹中的angular.json文件中的下列代码
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}需要确保代码在从localhost:4200或其他开发服务器服务时工作正常,特别是在安全性方面,因为它们通常与目标“prod”环境不同。
发布于 2020-05-26 20:18:20
您需要使用以下语法:
ng serve --configuration productionhttps://stackoverflow.com/questions/49276085
复制相似问题