【问题标题】:ERROR in The Angular Compiler requires TypeScript >=3.1.1 and <3.2.0 but 3.2.1 was found insteadAngular 编译器中的错误需要 TypeScript >=3.1.1 和 <3.2.0 但找到的是 3.2.1
【发布时间】:2019-05-03 20:08:25
【问题描述】:

我收到了这个错误

Angular 编译器中的错误需要 TypeScript >=3.1.1 和

似乎 Typescript 更新了,但 Angular 编译器不喜欢这样。

我该如何解决这个问题?

【问题讨论】:

  • 要么降级 typescript 要么升级 angular
  • Angular 7 修复了这个问题。我猜你的 Angular 版本是 6。
  • 刚刚发现不少人提出了类似的问题。只是想把我的答案的链接放在这里,因为我觉得它足以回答它stackoverflow.com/a/57216166/10959940

标签: angular typescript npm angular-cli


【解决方案1】:

要解决此问题,请安装特定的打字稿版本 3.1.6

npm i typescript@3.1.6 --save-dev --save-exact

【讨论】:

  • 在此之前,我必须更新系统上的 node.js 和 npm 版本才能正常工作
  • 有谁知道首先将 typescript 版本更新到 3.2.x 的原因是什么?是不是因为这恰好是今天的最新版本——而我的包文件中需要它的东西是“不受约束的”,所以它允许更新——但是 Angular 的“允许”版本最大
  • 我对哪个 Angular 版本支持 TS 3.2 感到困惑。第一个版本是 7.2.0,目前处于 RC0 状态,因此不会自行更新到该版本。
  • 这是更新node端ts版本的解决方案。谢谢
【解决方案2】:

在我的例子中,下面的命令适用于 Windows。它将在 3.1.1 和 3.2.0 之间安装所需的最新版本。根据操作系统使用双引号或单引号

npm install typescript@">=3.1.1 <3.2.0" 

【讨论】:

  • 刚刚发生在我身上(Angular 7.3.2,但 Debian 现在有 Typescript 3.3.1),这个答案是最好的,因为我不需要找出满足的最新版本是什么Angular 提供的标准。
  • npm install typescript@">=3.2.0
  • Mac 的工作方式类似于 npm install typescript@'>=3.1.1
  • 为我工作:) 我使用 npm install typescript@">=3.4.0 和 跨度>
【解决方案3】:

从 CircleCi 的错误日志中得到了类似的错误。

“Angular 编译器中的错误需要 TypeScript >=3.1.1 和

您知道这不会影响 Angular 应用程序,但 CircleCi 错误变得烦人。我正在运行 Angular 7.1

我跑了: $ npm i typescript@3.1.6 --save-dev --save-exact 更新 package-lock.json 文件。

然后我跑了: $ npm 我

之后我跑了: $ npm 审计修复

“此 CircleCi 错误消息”消失了。所以它有效

【讨论】:

    【解决方案4】:
    npm install typescript@">=3.1.1 <3.3.0" --save-dev --save-exact
    rm -rf node_modules
    npm install
    

    【讨论】:

      【解决方案5】:

      首先安装你的目标版本

      npm i typescript@3.1.6 --save-dev --save-exact
      

      然后在编译之前做

         npm i
      

      【讨论】:

        【解决方案6】:

        以下错误:

        Angular 编译器中的错误需要 TypeScript >=3.4.0 和

        运行以下 NPM 命令:

        $ npm install typescript@3.5.3
        

        来源Link

        【讨论】:

        • 更好的方法是给他范围:yarn add typescript@"&gt;=3.4.0 &lt;3.6.0" --save-dev --save-exact 或使用 npm npm install typescript@"&gt;=3.4.0 &lt;3.6.0" --save-dev --save-exact
        【解决方案7】:

        Angular 编译器中的错误需要 TypeScript >=3.4.0 和

        对于这个错误你也可以定义一个版本范围:

        yarn add typescript@">=3.4.0 <3.6.0" --save-dev --save-exact
        

        或用于 npm

        npm install typescript@">=3.4.0 <3.6.0" --save-dev --save-exact
        

        安装正确的打字稿版本后:

        1. 删除node_modules文件夹
        2. 运行yarn installnpm install
        3. 编译并交叉手指 xD

        【讨论】:

          【解决方案8】:

          我在尝试发球时也遇到了类似的问题。我能够如下解决它。
          注意:

          C:\Windows\system32> is on windows command prompt
          C:\apps\workspace\testProj>  is on VS code Terminal (can also be doable in another command prompt)
          

          以下是我用来解决此问题的步骤。

          Step1。验证在命令提示符下安装的 cli 版本(将是 Angular CLI 全局版本)

          C:\Windows\system32>ng --version
          

          Angular CLI:8.3.13

          如果之前安装了 cli,它会显示全局 cli 版本。

          如果未安装 cli,我们可能会收到错误
          ng 不是内部或外部命令

          一个。 (可选步骤) Install Angular CLI global version

          C:\Windows\system32>npm install -g @angular/cli
          C:\Windows\system32>npm install -g @angular-cli/latest
          

          b.再次检查版本

          C:\Windows\system32>ng --version
          Angular CLI: 8.3.13
          

          第二步。验证安装在您的 Angular 项目上的本地 cli 版本(VS 代码 ide 或命令提示符 cd'd 到您的项目项目)

          C:\apps\workspace\testProj>ng --version
          Angular CLI: 7.3.8
          

          注意:显然版本不同步。在您的 Angular 项目中执行以下操作

          C:\apps\workspace\testProj>ng update @angular/cli        -> important to sync with global cli version
          

          注意:如果使用上述命令无法升级(参考:How to upgrade Angular CLI to the latest version) 在命令提示符下,uninstall global angular cli, clean the cache and reinstall the cli

          C:\Windows\system32>npm uninstall -g angular-cli
          C:\Windows\system32>npm cache clean or npm cache verify #(if npm > 5)
          C:\Windows\system32>npm install -g @angular/cli@latest
          

          现在更新您的本地项目版本,因为当您尝试执行项目时,本地项目的 cli 版本的优先级高于全局版本。

          C:\apps\workspace\testProj>rm -rf node_modules
          C:\apps\workspace\testProj>npm uninstall --save-dev angular-cli
          C:\apps\workspace\testProj>npm install --save-dev @angular/cli@latest
          C:\apps\workspace\testProj>npm install
          C:\apps\workspace\testProj>ng update @angular/cli
          

          Step3. 验证本地项目 cli 版本现在是否与全局版本同步

          C:\Windows\system32>ng --version
          Angular CLI: 8.3.13
          
          C:\apps\workspace\testProj>ng --version
          Angular CLI: 8.3.13
          

          第四步。。重新验证项目

          C:\apps\workspace\testProj>ng serve
          

          现在应该可以工作了

          【讨论】:

            【解决方案9】:

            如果您想在不支持的 TypeScript 版本中使用 Angular,请将其添加到您的 tsconfig.json 以忽略警告:

              "angularCompilerOptions": {
                "disableTypeScriptVersionCheck": true,
              },
            

            【讨论】:

            • 谢谢。这很有帮助。
            猜你喜欢
            • 2020-06-05
            • 1970-01-01
            • 2019-12-04
            • 2018-10-31
            • 2018-11-02
            • 2022-01-10
            • 2016-04-02
            • 2018-06-24
            • 2012-06-14
            相关资源
            最近更新 更多