【问题标题】:The Angular Compiler requires TypeScript >=2.7.2 and <2.8.0 but 2.8.3 was found insteadAngular 编译器需要 TypeScript >=2.7.2 和 <2.8.0 但找到的是 2.8.3
【发布时间】:2018-10-31 21:50:58
【问题描述】:

我的 Angular 应用开始出现此错误:

Angular 编译器需要 TypeScript >=2.7.2 和

当我尝试将打字稿降级到正确的版本时:

npm install -g typescript@2.7.2 说更新了 1 个包。

当我使用验证打字稿版本时 npm view typescript version 我仍然得到 2.8.3

我什至尝试使用 npm uninstall -g typescript 完全删除打字稿

但是当我再次验证打字稿版本时 npm view typescript version我还是2.8.3

有哪些命令可以正确清除 typescript 并将其恢复到以前的版本,例如 2.7.2?

我正在运行 node v10.0.0 和 npm v6.0.1

当我运行npm list -g typescript 时,我看到正确的版本即将到来 2.7.2 但仍然以某种方式全局安装了 2.8.3 版本

【问题讨论】:

  • 遇到同样的问题。我正在从 Jenkinsfile 运行“ng build”,最终得到 typescript 2.9.2。我的猜测是它与 @angular-devkit/build-optimizer 有关,它依赖于 typescript ~2.9.1。
  • 刚刚发现了这个问题。如果有人在其他版本上遇到过类似的错误,请参考我的帖子! stackoverflow.com/questions/57216110/…

标签: angular typescript npm version global


【解决方案1】:

你应该做npm install typescript@'&gt;=2.7.2 &lt;2.8.0'。这将安装您的项目需要的正确打字稿。确保在 Angular 项目中运行它。

在 Windows 上,您应该使用双引号而不是单引号,如下所示:

npm install typescript@">=2.7.2 <2.8.0"

否则,您将收到The system cannot find the file specified.

【讨论】:

  • 这个命令给了我The system cannot find the file specified.
  • 你需要在你的项目中运行它。
  • 根据您的操作系统以及您的设置,您可能需要使用双引号而不是单引号:npm install -g typescript@"&gt;=2.7.2 &lt;2.8.0"
【解决方案2】:

在您的项目文件夹中再次运行npm install typescript@2.7.2,如此处所述:

Want to upgrade project from Angular v5 to Angular v6

那么它应该可以工作了。

【讨论】:

  • 我之前尝试过该命令,但我的版本仍然显示 typescript 2.8.3
  • 请将你的 typescript 依赖保存为 dev 依赖;否则你会将打字稿捆绑到你的最终产品中。
【解决方案3】:

我做了接下来的步骤:

  • 已移除 package-lock.json;
  • npm install -g --save typescript@2.7.2;
  • npm uninstall -g --save typescript@2.9.2;
  • 在 package.json 中,“devDependencies”部分更新了字符串,其中 typescript 为“typescript”:“~2.7.2”。

在项目的终端 ng serve --open 中运行以上所有内容(我一直在使用 IDEA 2018.1)。

【讨论】:

  • 我在全球安装了 2.7.2,但在使用 npm-check-updates 更新后在本地安装了 2.9.2。所以我只是按照你的步骤省略了 -g 选项,现在我可以再次构建我的项目。好的! :-)
【解决方案4】:

我做了以下事情:

  • 手动删除文件夹 node_modules
  • 手动删除 package-lock.json 文件
  • 在package.json文件中一定要设置TypeScript的依赖为

     "typescript": "2.7.2"
    
  • 运行 npm cache clean -f

  • 运行 npm 安装

这对我有用。

【讨论】:

  • 我必须为这个解决方案辩护。这是唯一对我有用的。
【解决方案5】:

安装 "@angular/compiler-cli": "7.0.0-beta.4" 解决了这个问题。 我使用“打字稿”:“3.0.3”。

【讨论】:

    【解决方案6】:

    要升级,请在终端中运行以下命令。

    • 安装最新版本的 NPM

      npm install npm@latest -g
      
    • 运行审核

      npm audit  
      
    • 更新 NPM

      npm update
      
    • 运行 NPM 运行脚本。

      npm start
      

    现在你的编译器已经准备好了。

    【讨论】:

      【解决方案7】:

      降级到typescript 2.9.2 (npm install typescript@2.9.2)re-running ng update --all 仍然会产生错误(两次):

      Package "@angular/compiler-cli" has an incompatible peer dependency to "typescript" (requires ">=2.7.2 <2.10", would install "3.1.3"
      Verified that version 2.9.2 of typescript was in node_modules.
      

      【讨论】:

        【解决方案8】:

        更新到 macOS Mojave 后遇到了同样的问题(以及许多其他问题)。 通过手动删除 node_modules 和 package_lock.json 来修复它,将 package.json 从 "typescript": "~2.7.2" 更改为 "typescript": "~2.8.0" 并运行 npm install。

        【讨论】:

          【解决方案9】:

          这只是因为在你的项目中package.json 文件有

          例如"devDependencies": {"typescript": "~2.8.3" }

          并且在您安装了 angular cli 的机器中具有 "typescript": "2.7.2" 版本。

          您可以通过ng -vng v 进行检查。

          所以,只需打开 package.json 更新您的 typescript 版本run npm install 即可。

          【讨论】:

            猜你喜欢
            • 2018-11-02
            • 2019-12-04
            • 2020-06-05
            • 2019-05-03
            • 1970-01-01
            • 2018-06-24
            • 2022-01-10
            • 1970-01-01
            • 2014-03-25
            相关资源
            最近更新 更多