Angular编译器需要TypeScript> = 3.4.0和<3.5.0,但是找到了3.5.3

时间:2019-07-26 08:31:23

标签: angular typescript

我在执行npm run build时遇到以下错误:

  

Angular编译器需要TypeScript> = 3.4.0和<3.5.0但3.5.3   而是找到了。

我分别尝试了以下操作:

  

npm install typescript @“> = 3.4.0 <3.5.0”。然后删除node_modules和package.json。运行npm install

     

npm更新--force。   然后删除node_modules和package.json。运行npm install

我仍然遇到错误:

我的package.json包含以下依赖项:

  "dependencies": {
    "@angular/animations": "8.1.0",
    "@angular/cdk": "^8.0.2",
    "@angular/cli": "^8.1.0",
    "@angular/common": "8.1.0",
    "@angular/compiler": "8.1.0",
    "@angular/core": "8.1.0",
    "@angular/forms": "8.1.0",
    "@angular/http": "7.2.15",
    "@angular/material": "^8.0.2",
    "@angular/platform-browser": "8.1.0",
    "@angular/platform-browser-dynamic": "8.1.0",
    "@angular/router": "8.1.0",
    "@ngx-translate/core": "^11.0.1",
    "@ngx-translate/http-loader": "^4.0.0",
    "angular-user-idle": "^2.1.2",
    "angular2-cookie": "^1.2.6",
    "core-js": "^2.6.7",
    "rxjs": "6.5.2",
    "rxjs-tslint": "^0.1.5",
    "stream": "0.0.2",
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.801.0",
    "@angular/compiler-cli": "8.1.0",
    "@angular/language-service": "8.1.0",
    "@types/jasmine": "~3.3.13",
    "@types/jasminewd2": "~2.0.6",
    "@types/node": "~12.6.1",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "protractor": "~5.4.2",
    "ts-node": "~8.3.0",
    "tslint": "~5.18.0",
    "typescript": "^3.4.5"
  }

ng --version提供以下输出:

Angular CLI: 8.1.2
Node: 10.16.0
OS: win32 x64
Angular: 8.1.0
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.801.2
@angular-devkit/build-angular     0.801.2
@angular-devkit/build-optimizer   0.801.2
@angular-devkit/build-webpack     0.801.2
@angular-devkit/core              8.1.2
@angular-devkit/schematics        8.1.2
@angular/cdk                      8.1.1
@angular/cli                      8.1.2
@angular/http                     7.2.15
@angular/material                 8.1.1
@ngtools/webpack                  8.1.2
@schematics/angular               8.1.2
@schematics/update                0.801.2
rxjs                              6.5.2
typescript                        3.5.3
webpack                           4.35.2

这里可能出什么问题了?

16 个答案:

答案 0 :(得分:8)

运行此脚本以查找确切版本

npm install typescript@">=3.4.0 and <3.5.0" --save-dev

答案 1 :(得分:8)

我的dt <- setkey(data.table(x), x) dt[dt, on = .(x > x), mult = 'first', lowx := i.x][, lowx := fcoalesce(lowx + .0, -Inf)] dt[dt, on = .(x < x), mult = 'last', highx := i.x][, highx := fcoalesce(highx + .0, Inf)] dt[, closex := fifelse(x - lowx < highx - x, lowx, highx)] dt[, .(x, closex)] # x closex # 1: 3 4 # 2: 4 3 # 3: 11 14 # 4: 14 16 # 5: 16 14 也遇到了这个问题,但是版本号不同。

Angular编译器中的

ERROR要求TypeScript> = 3.6.4和<3.8.0 但是找到了3.8.2。

enter image description here

我所做的是

  1. 去了Angular 9 breaking changes
  2. 搜索了Angular 9版本,发现它仅支持3.7
  3. typescript中的typescript版本编辑为package.json
  4. 跑了"typescript": "~3.7.0"

此处的npm i很重要,因为它将确保仅更新到下一个补丁程序版本(<~,如果使用3.8.0,则不会更新次要版本。也会更新为次要版本(例如^)。

答案 2 :(得分:4)

您有两个选择:

1-自动:

这将安装正确的版本

npm install typescript@">=3.4.0 and <3.5.0" --save-dev

手动2:

转到package.json并更改typescript的版本,如果要将角项目升级到

Angular 11 npm install typescript@"~4.0.0" --save-dev

"devDependencies": {
  ...
  "typescript": "~4.0.0"
}

角度10 npm install typescript@"~3.8.0" --save-dev

"devDependencies": {
  ...
  "typescript": "~3.8.0"
}

角度9 npm install typescript@"~3.7.0" --save-dev

"devDependencies": {
  ...
  "typescript": "~3.7.0"
}

角度8 npm install typescript@"~3.4.0" --save-dev

"devDependencies": {
  ...
  "typescript": "~3.4.0"
}

Angular 7 npm install typescript@"~3.1.0" --save-dev

"devDependencies": {
  ...
  "typescript": "~3.1.0"
}

然后运行:

npm install 

答案 3 :(得分:3)

就我而言,我在从 Angular 10 迁移到 Angular 11 时收到此错误。

An unhandled exception occurred: The Angular Compiler requires TypeScript >=4.0.0 and <4.2.0 but 4. 2.3 was found instead.

为了解决这个问题,我在我的 Angular 项目所在的 Visual Studio 中使用了以下代码:

npm install typescript@'>==4.0.0 <4.2.0'

答案 4 :(得分:2)

似乎您已安装了TypeScript的最新版本(v3.5.3)。您应该改为安装TypeScript v3.4.5,它是Angular 8支持的版本。

您可以尝试使用此命令来安装TypeScript的特定版本,而不是最新版本。

npm i --save-dev typescript@3.4.5

此外,您可能要考虑删除package.json上TypeScript版本的插入符号^,使其仅为3.4.5。这是为了防止它安装/使用最新的次要版本(3.5.3)。

"typescript": "3.4.5"

答案 5 :(得分:2)

运行此:

npm i --save-dev typescript@~3.4.5

答案 6 :(得分:2)

好消息!

如果升级到Angular 8.2+,则可以使用TypeScript 3.5。版本8.1暂时还不支持。

证明:https://github.com/angular/angular-cli/issues/15134#issuecomment-516908416

答案 7 :(得分:1)

请使用以下命令卸载打字稿:

$convert -list policy

Path: /home/travis/.config/ImageMagick/policy.xml
  Policy: Coder
    rights: Read 
    pattern: PDF
  Policy: Coder
    rights: Read 
    pattern: PDF
Path: [built-in]
  Policy: Undefined
    rights: None 

,然后安装特定于打字稿的版本:

npm uninstall typescript

答案 8 :(得分:1)

您的错是您package.json中的“ ^” dispatch()

解决方案是"typescript": "^3.4.0"

答案 9 :(得分:1)

输入"typescript": "^3.4.5"而不是devDependencies文件中package.json下的"typescript": "~3.4.5",然后保存文件,然后再次运行npm install。它对我有用。

答案 10 :(得分:1)

如果您想将 Angular 项目升级到 Angular 11

npm install typescript@">=4.0.0 and <4.2.0" --save-dev

在 package.json 中:

"devDependencies": {
      ...
      "typescript": "^4.1.5"
 }

答案 11 :(得分:0)

此问题主要取决于@ angular / cli版本 所以打字稿取决于角度版本

当您更新角度时,请检查此网站(devDependency)

https://david-dm.org/angular/angular-cli

然后做

npm i --save-dev typescript@3.4.5

需要3.4.5版本

答案 12 :(得分:0)

您无需卸载并再次安装打字稿,因此可以按照错误中的建议安装特定版本的打字稿。

npm install typescript@ version

或者您可以运行

npm install typescript@ version --save-dev

将其保存在json包中

答案 13 :(得分:0)

使用此命令为我工作。.谢谢

npm i typescript@">=3.6.4 <3.8.0"

答案 14 :(得分:0)

使用 Angular 11 使用

npm i -D typescript@4.0.5

答案 15 :(得分:0)

当我遇到类似的错误时,我运行:

yarn clean cache

如果你使用 npm 你可以尝试运行:

npm clean cache

我不确定这是 100% 的解决方案,但我希望它可以帮助某人。