从角度8迁移到9失败-缺少@Injectable并且提供者定义迁移步骤不完整

时间:2020-02-07 10:51:15

标签: angular angular-cli angular-ivy

当尝试将我的角度项目从8升级到9时,出现以下错误:

Debug Failure. Did not expect JSDocNamepathType to have an Identifier in its trivia

我不知道此错误的含义以及解决该错误的途径。我所有的服务/解析器/ etc都有一个Injectable装饰器,我不明白为什么会失败。有人遇到过此错误吗?

Package.json:

"dependencies": {
    "@angular-devkit/core": "^9.0.1",
    "@angular-devkit/schematics": "^9.0.1",
    "@angular/animations": "^9.0.0",
    "@angular/cdk": "^9.0.0",
    "@angular/common": "^9.0.0",
    "@angular/compiler": "^9.0.0",
    "@angular/core": "^9.0.0",
    "@angular/forms": "^9.0.0",
    "@angular/http": "^7.2.15",
    "@angular/material": "^9.0.0",
    "@angular/platform-browser": "^9.0.0",
    "@angular/platform-browser-dynamic": "^9.0.0",
    "@angular/platform-server": "^9.0.0",
    "@angular/router": "^9.0.0",
    "@angular/service-worker": "^9.0.0",
    "@aspnet/signalr": "^1.1.4",
    "@aspnet/signalr-protocol-msgpack": "^1.1.0",
    "@nguniversal/express-engine": "^8.2.6",
    "@nguniversal/module-map-ngfactory-loader": "v8.2.6",
    "@schematics/angular": "^9.0.1",
    "@schematics/update": "^0.900.1",
    "@types/mkdirp": "^0.5.2",
    "aspnet-prerendering": "^3.0.1",
    "bootstrap": "^4.3.1",
    "bundle-loader": "^0.5.6",
    "core-js": "^2.6.11",
    "element-remove": "^1.0.4",
    "express": "^4.15.2",
    "hammerjs": "^2.0.8",
    "json-object-mapper": "^1.6.0",
    "luxon": "^1.13.1",
    "mkdirp": "^0.5.1",
    "node-cache": "^5.1.0",
    "node-sass": "^4.11.0",
    "npm": "^6.13.4",
    "preboot": "^7.0.0",
    "reflect-metadata": "^0.1.13",
    "request-promise": "^4.2.5",
    "rxjs": "6.5.3",
    "tslib": "^1.10.0",
    "url-search-params-polyfill": "^6.0.0",
    "zone.js": "~0.10.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.900.1",
    "@angular/cli": "^9.0.1",
    "@angular/compiler-cli": "^9.0.0",
    "@angular/language-service": "^9.0.0",
    "@types/express": "^4.17.0",
    "@types/jasmine": "^2.8.16",
    "@types/jasminewd2": "^2.0.6",
    "@types/luxon": "^1.12.0",
    "@types/node": "^12.11.1",
    "@types/webpack-env": "^1.15.0",
    "codelyzer": "^5.1.2",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "^3.1.3",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~1.4.2",
    "karma-jasmine": "~1.1.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "^5.4.1",
    "source-map-explorer": "^1.8.0",
    "ts-loader": "^5.2.0",
    "ts-node": "~5.0.0",
    "tsconfig-paths-webpack-plugin": "^3.2.0",
    "tslint": "~5.9.1",
    "typescript": "~3.7.5",
    "webpack-bundle-analyzer": "^3.3.1",
    "webpack-cli": "^3.1.0"
  },

1 个答案:

答案 0 :(得分:0)

对于那些最终遇到相同问题的人,我通过从项目中删除JSDoc批注来修复了它。显然,打字稿编译器存在一个错误,导致JSDoc批注无法正确编译。我不确定打字稿团队是否已经解决了该错误,但是需要在将来的版本中解决,因为我不是唯一使用JSDoc的人。

在Angular存储库中出现了一个与此有关的问题: https://github.com/angular/angular/issues/35233

希望这对任何人都可以帮助:)