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

use*_*835 10 typescript angular

我在执行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"
  }
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

这里可能出什么问题了?

wen*_*jun 21

Original Answer - Applicable for Angular 8

It seems like you have the latest version (v3.5.3) of TypeScript installed. You should be installing TypeScript v3.4.5 instead, which is the version that is supported by Angular 8.

You can try this command to install the specific version of TypeScript, rather than the latest version.

npm i --save-dev typescript@3.4.5
Run Code Online (Sandbox Code Playgroud)

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

"typescript": "3.4.5"
Run Code Online (Sandbox Code Playgroud)

已编辑-适用于正在使用其他Angular版本(例如Angular 9Angular 2至7)的用户)

|-----------------|--------------------|
| Angular version | TypeScript version |
|-----------------|--------------------|
|       6.1.x     |       3.6.x        |
|-----------------|--------------------|
|       7.2.x     |       2.9.x        |
|-----------------|--------------------|                                 
|       9.x       |       3.6.x        |        
|-----------------|--------------------|
Run Code Online (Sandbox Code Playgroud)

同样,如果我们使用任何其他Angular版本,则可以安装相应的TypeScript版本。

npm i --save-dev typescript@3.6.4
Run Code Online (Sandbox Code Playgroud)

来源 -请参阅版本的完整列表。

  • 嗯..您可以尝试第一步,即运行“npm i --save-dev typescript@3.4.5”,看看是否可以解决问题。如果不起作用,您可以尝试第二种删除插入符号“^”的方法。正如您所建议的,我认为您可以通过删除整个文件夹或运行“rm -r node_modules”来删除node_modules,然后通过运行“npm i”重新安装软件包 (2认同)
  • Angular 8.2 现在支持 TypeScript 3.5,因此您可以再次更新您的答案。https://github.com/angular/angular-cli/issues/15134#issuecomment-516908416 (2认同)
  • @wentjun 感谢您跟踪此内容! (2认同)

小智 17

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

npm install typescript@">=3.4.0 and <3.5.0" --save-dev
Run Code Online (Sandbox Code Playgroud)


Sib*_*enu 10

我也遇到了这个问题Angular 9,但版本号不同。

Angular Compiler 中的 ERROR 需要 TypeScript >=3.6.4 和 <3.8.0,但找到了 3.8.2。

在此处输入图片说明

我所做的是,

  1. 转到Angular 9 的重大变化
  2. 搜索typescript版本发现只支持3.7
  3. 将我的typescript版本编辑package.json"typescript": "~3.7.0"
  4. 跑了 npm i

~,因为这将确保它会只更新到下一个补丁版本(<这里是重要的3.8.0),而不是次要的版本,如果你使用^它都将更新为次要版本太(例如4.0.0)。


Abo*_*zlR 8

您有两个选择:

1-自动:

这将安装正确的版本

npm install typescript@">=3.4.0 and <3.5.0" --save-dev
Run Code Online (Sandbox Code Playgroud)

2-手动:

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

角 11 ( npm install typescript@"~4.0.0" --save-dev)

"devDependencies": {
  ...
  "typescript": "~4.0.0"
}
Run Code Online (Sandbox Code Playgroud)

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

"devDependencies": {
  ...
  "typescript": "~3.8.0"
}
Run Code Online (Sandbox Code Playgroud)

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

"devDependencies": {
  ...
  "typescript": "~3.7.0"
}
Run Code Online (Sandbox Code Playgroud)

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

"devDependencies": {
  ...
  "typescript": "~3.4.0"
}
Run Code Online (Sandbox Code Playgroud)

角 7 ( npm install typescript@"~3.1.0" --save-dev)

"devDependencies": {
  ...
  "typescript": "~3.1.0"
}
Run Code Online (Sandbox Code Playgroud)

然后运行:

npm install 
Run Code Online (Sandbox Code Playgroud)

  • 就我而言,我必须使用 `npm install typescript@"&gt;=3.4.0 和 &lt;3.6.0" --save-dev` 因为警告显示版本间隔 `&gt;=3.4.0 和 &lt;3.6.0 `。 (2认同)

avi*_*hkr 6

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

npm uninstall typescript
Run Code Online (Sandbox Code Playgroud)

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

npm i --save-dev typescript@3.4.5
Run Code Online (Sandbox Code Playgroud)


小智 5

你的错误是"typescript": "^3.4.0"package.json 中的“^”

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