0

重现 生产构建的步骤是成功的,但应用程序无法正常工作。

ERROR NullInjectorError: StaticInjectorError(c)[$ -> V]: StaticInjectorError(Platform: core)[$ -> V]: NullInjectorError: No provider for V! at j.get (http://localhost:4200/main.205a39b164af2df4f46e.js:1:257106) at http://localhost:4200/main.205a39b164af2df4f46e.js:1:259276 at t (http://localhost:4200/main.205a39b164af2df4f46e.js:1:259646) at W.get (http://localhost:4200/main.205a39b164af2df4f46e.js:1:259769) at http://localhost:4200/main.205a39b164af2df4f46e.js:1:259276 at t (http://localhost:4200/main.205a39b164af2df4f46e.js:1:259646) at W.get (http://localhost:4200/main.205a39b164af2df4f46e.js:1:259769) at ar (http://localhost:4200/main.205a39b164af2df4f46e.js:1:306022) at zr.get (http://localhost:4200/main.205a39b164af2df4f46e.js:1:314741) at ar (http://localhost:4200/main.205a39b164af2df4f46e.js:1:306022)

在本地运行ng serve--prod或构建应用程序ng serve --prod然后在服务器上运行时会引发相同的错误。在开发模式下运行时,一切都很好并且工作正常。

文件内抛出错误core.js.pre-build-optimizer.js:7187

依赖项

"dependencies": {
"@angular/animations": "^8.0.0",
"@angular/cdk": "^7.3.1",
"@angular/common": "~8.0.0",
"@angular/compiler": "~8.0.0",
"@angular/core": "~8.0.0",
"@angular/forms": "~8.0.0",
"@angular/material": "^7.3.1",
"@angular/material-moment-adapter": "^7.3.1",
"@angular/platform-browser": "~8.0.0",
"@angular/platform-browser-dynamic": "~8.0.0",
"@angular/router": "~8.0.0",
"@netbasal/ngx-content-loader": "^2.1.0",
"@ngrx/store": "^7.4.0",
"@types/file-saver": "^2.0.1",
"@types/googlemaps": "^3.30.16",
"acorn": "^6.1.1",
"core-js": "^2.5.4",
"dayjs": "^1.8.15",
"file-saver": "^2.0.2",
"hammerjs": "^2.0.8",
"luxon": "^1.12.0",
"moment": "^2.24.0",
"ng-zorro-antd": "^8.2.1",
"ngx-cookie-service": "^2.1.0",
"ngx-material-timepicker": "^3.0.2",
"ramda": "^0.26.1",
"rxjs": "~6.5.2",
"tslib": "^1.9.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.800.0",
"@angular/cli": "~8.0.0",
"@angular/compiler-cli": "~8.0.0",
"@angular/language-service": "~8.0.0",
"@babel/core": "^7.4.5",
"@compodoc/compodoc": "^1.1.9",
"@storybook/addon-actions": "^5.0.11",
"@storybook/addon-links": "^5.0.11",
"@storybook/addon-notes": "^5.0.11",
"@storybook/addons": "^5.0.11",
"@storybook/angular": "^5.0.11",
"@types/jasmine": "~2.8.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"babel-loader": "^8.0.6",
"browser-sync": "^2.26.5",
"codelyzer": "^5.0.1",
"husky": "^3.0.5",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~3.1.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~1.1.2",
"karma-jasmine-html-reporter": "^0.2.2",
"prettier": "1.18.2",
"pretty-quick": "^1.11.1",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.11.0",
"typescript": "~3.4.5"
}
4

2 回答 2

1

运行ng serve --aot这是用于生产的编译器模式。如果你这样做,你会得到一个可调试的错误,并会看到你的导入或提供程序中缺少什么。当您使用“--prod 标志”时,代码会被丑化,模块、变量、类等......失去了它的名字。

于 2019-09-11T14:19:56.600 回答
1

好的。问题已修复。您正在使用相互冲突的 Angular 和 Angular Material 版本。(您的 Angular 依赖项在版本 6 上,而 Angular CDK 和 Angular Material 依赖项在版本 7 上,这需要 Angular v7。)

您应该:

更新所有版本的 Angular。

这可以通过运行 ng update @angular/core 来完成,它应该更新所有 Angular 依赖项。

(有关更新命令的更多信息,请查看文档或更新 Angular 网站)

降级 Angular CDK 和 Angular Material 的版本。

这可以通过运行以下命令来实现:

npm i @angular/{cdk,material}@'^6.0.0' 此命令应安装 CDK 和 Angular Material 的第 6 版。

检查此 URL https://stackoverflow.com/a/54059399/7541617了解更多信息

于 2019-09-11T15:18:55.247 回答