复制步骤 生产版本成功完成,但该应用程序无法正常工作。
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"
}
答案 0 :(得分:1)
运行ng serve --aot
,这是用于生产的编译器模式。如果这样做,将得到一个可调试的错误,并会看到您的导入或提供程序中缺少的内容。当您使用“ --prod标志”时,代码将被丑化,并且模块,vars,class等会丢失其名称。
答案 1 :(得分:1)
好的。问题已解决。 您正在使用冲突版本的Angular和Angular材质。 (您的Angular依赖关系在版本6上,而Angular CDK和Angular Material依赖关系在版本7上,需要Angular v7。)
您应该:
更新所有版本的Angular。
这可以通过运行ng update @ angular / core来完成,它应该更新所有Angular依赖项。
(有关update命令的更多信息,请查看文档或Update Angular网站)
降级您的Angular CDK和Angular材质的版本。
这可以通过运行以下命令来实现:
npm i @ angular / {cdk,material} @'^ 6.0.0' 此命令应安装CDK和Angular Material的版本6。
检查此URL https://stackoverflow.com/a/54059399/7541617以获得更多信息