【问题标题】:Versions of @angular/compiler-cli and typescript could not be determined. The most common reason for this is a broken npm install@angular/compiler-cli 和 typescript 的版本无法确定。最常见的原因是 npm install 损坏
【发布时间】:2019-06-20 22:12:24
【问题描述】:

我在 angular2 中的项目,但是当我运行项目时会产生以下错误

无法确定 @angular/compiler-cli 和 typescript 的版本。 最常见的原因是 npm 安装损坏。

请确保您的 package.json 包含 @angular/compiler-cli 和 typescript devDependencies,然后删除 node_modules 和 package-lock.json (如果你有的话)和 再次运行 npm install。

运行项目时出现此错误。以下是我的环境详细信息

Angular CLI: 1.6.8
Node: 8.2.1
OS: win32 x64
Angular: 5.2.4
... core

@angular/cli: 1.6.8
@angular/common: 2.2.3
@angular/compiler-cli: 2.4.10
@angular/compiler: 2.2.3
@angular/forms: 2.2.3
@angular/http: 2.2.3
@angular/platform-browser-dynamic: 2.2.3
@angular/platform-browser: 2.2.3
@angular/router: 3.1.2
@angular/tsc-wrapped: 0.5.2
@angular-devkit/build-optimizer: 0.0.42
@angular-devkit/core: 0.0.29
@angular-devkit/schematics: 0.0.52
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.8
@schematics/angular: 0.1.17
typescript: 2.0.2
webpack: 3.10.0

以下是我运行该项目的步骤

1)npm install -g @angular/cli@latest 
2)npm install 
3)ng serve

我的日志

Versions of @angular/compiler-cli and typescript could not be determined.
The most common reason for this is a broken npm install.

Please make sure your package.json contains both @angular/compiler-cli and typescript in
devDependencies, then delete node_modules and package-lock.json (if you have one) and
run npm install again.

我在这方面浪费了很多时间,但无法得到解决方案。如果有任何想法,请给我建议

【问题讨论】:

    标签: angular


    【解决方案1】:

    这里是示例package.json 文件,根据您的需要更改版本。 并且,首先删除由npm install 创建的node_modules 文件夹,按照指定更改package.json,然后执行npm install

    我在这里粘贴整个代码是因为你只显示了你的一部分,问题可能是你在package.json 中没有提到devDependencies

      {
        "name": "ng-app",
        "version": "0.0.0",
        "license": "MIT",
        "scripts": {
          "ng": "ng",
          "start": "ng serve",
          "build": "ng build",
          "test": "ng test",
          "lint": "ng lint",
          "e2e": "ng e2e"
        },
        "private": true,
        "dependencies": {
          "@angular/animations": "^5.1.3",
          "@angular/cdk": "^5.0.3",
          "@angular/common": "^5.0.0",
          "@angular/compiler": "^5.0.0",
          "@angular/core": "^5.0.0",
          "@angular/forms": "^5.0.0",
          "@angular/http": "^5.0.0",
          "@angular/material": "^5.0.3",
          "@angular/platform-browser": "^5.0.0",
          "@angular/platform-browser-dynamic": "^5.0.0",
          "@angular/router": "^5.0.0",
          "angular2-text-mask": "^8.0.4",
          "bootstrap": "^3.3.7",
          "core-js": "^2.4.1",
          "hammerjs": "^2.0.8",
          "jquery": "^3.2.1",
          "ngx-popover": "0.0.16",
          "rxjs": "^5.5.2",
          "zone.js": "^0.8.14"
        },
        "devDependencies": {
          "@angular/cli": "1.6.0",
          "@angular/compiler-cli": "^5.0.0",
          "@angular/language-service": "^5.0.0",
          "@types/jasmine": "~2.5.53",
          "@types/jasminewd2": "~2.0.2",
          "@types/node": "~6.0.60",
          "codelyzer": "^4.0.1",
          "jasmine-core": "~2.6.2",
          "jasmine-spec-reporter": "~4.1.0",
          "karma": "~1.7.0",
          "karma-chrome-launcher": "~2.1.1",
          "karma-cli": "~1.0.1",
          "karma-coverage-istanbul-reporter": "^1.2.1",
          "karma-jasmine": "~1.1.0",
          "karma-jasmine-html-reporter": "^0.2.2",
          "protractor": "~5.1.2",
          "ts-node": "~3.2.0",
          "tslint": "~5.7.0",
          "typescript": "~2.4.2"
        }
      }
    

    【讨论】:

      【解决方案2】:

      您必须更新您的依赖项。 Angular-CLI 1.5+ 不再支持 Angular 2。必须至少运行 Angular 4,而且我认为至少要运行 Typescript 2.6。如果您想检查新项目简单运行所需的依赖项

      ng new NewApp
      

      编辑:澄清:您正在尝试将 angular-cli 的 1.6.8 版本与 angular 2 一起使用。该版本的 cli 不再支持 Angular 2。您必须更新这些软件包。最好的方法是使用 cli 创建一个新项目。执行以下操作

      1. 打开命令提示符并导航到计算机上的某个位置
      2. 运行命令 ng new SomeAppName,其中 SomeAppName 是新项目的名称。 cli 现在将生成一个具有该名称和所有最新依赖项的新项目和文件夹。
      3. 打开当前不工作的项目并找到 package.json
      4. 打开新生成的项目并找到 package.json
      5. 比较来自 3 和 4 的 package.json 文件并更新您的依赖项
      6. 运行 npm i

      例如,另一种方法是将 angular-cli 降级到 1.3 版

      1. npm 卸载 -g @angular/cli
      2. npm i -g @angular/cli@1.3

      【讨论】:

      • 我试过但没有解决问题,这里是我的 package.json
      • angular-cli 1.6.8 不支持 angular 2.x.x。您必须运行 Angular 4++。只需运行上述命令,您将获得一个具有正确配置和所有最新 angular-packages 的全新项目。从那里您可以将其与您的项目配置进行比较。
      • 很高兴它有帮助。让其他人确切地知道你做了什么来修复它会很好,因为我在那种情况下发布了两种可能的解决方案。
      猜你喜欢
      • 2018-04-21
      • 2018-11-28
      • 2019-11-07
      • 2021-08-07
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 2018-04-12
      • 2021-09-11
      相关资源
      最近更新 更多