Angular 看到错误的 Typescript 版本

Angular seeing wrong Typescript version

当我 运行 ng build 我得到以下错误:

ERROR in The Angular Compiler requires TypeScript >=3.4.0 and <3.6.0 but 3.7.4 was found instead.

但是在我的package.json中,我定义了"typescript": "^3.5.3"

我在项目的文件中查找了 3.7.4 但它没有出现在任何地方所以为什么 Angular-CLI 认为这是指定的版本?

我正在使用节点 12.13.0。

这是我的完整 package.json:

{
  "name": "my-app",
  "version": "0.0.0",
  "scripts": {
    "postinstall": "npm run build",
    "ng": "ng",
    "dev": "ng build --aot --watch",
    "dtos": "tsd-ref && ts-ref",
    "build": "ng build --prod",
    "publish": "npm run build",
    "lint": "ng lint",
    "test": "ng test",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^8.2.14",
    "@angular/common": "^8.2.14",
    "@angular/compiler": "^8.2.14",
    "@angular/core": "^8.2.14",
    "@angular/forms": "^8.2.14",
    "@angular/http": "^7.2.15",
    "@angular/platform-browser": "^8.2.14",
    "@angular/platform-browser-dynamic": "^8.2.14",
    "@angular/router": "^8.2.14",
    "@servicestack/angular": "0.0.8",
    "@servicestack/client": "^1.0.31",
    "bootstrap": "^4.4.1",
    "core-js": "^3.6.1",
    "rxjs": "^6.5.4",
    "zone.js": "^0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.803.21",
    "@angular/cli": "^8.3.21",
    "@angular/compiler-cli": "^8.2.14",
    "@angular/language-service": "^8.2.14",
    "@types/jasmine": "^3.5.0",
    "@types/jasminewd2": "^2.0.8",
    "@types/node": "^12.12.22",
    "codelyzer": "^5.2.1",
    "gulp": "^4.0.2",
    "jasmine-core": "^3.5.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "^4.4.1",
    "karma-chrome-launcher": "~3.0.0",
    "karma-coverage-istanbul-reporter": "^2.1.1",
    "karma-jasmine": "^2.0.1",
    "karma-jasmine-html-reporter": "^1.5.1",
    "protractor": "^5.4.2",
    "ts-node": "^8.5.4",
    "tslint": "^5.20.1",
    "typescript": "^3.5.3"
  }
}

npm semver docs explains the meanings of the different operators, e.g. ^Caret Ranges 允许升级到下一个主要版本。

您可以改用 ~Tilde Ranges 来允许补丁级别更改:

"typescript": "~3.5.3"

或者要指定使用确切版本,您应该指定版本号(假定默认为=),例如:

"typescript": "3.5.3"