我刚刚开始我的第一份工作,并负责处理一个将更新的旧项目。

我给了一台新电脑,所以我安装了 node.js,Visual Studio 新版本。

正如我提到的,我正在使用 WebStorm 上的一个旧项目,但出现此错误:



当我搜索它时,我发现了一些与 @angular/compiler-cli 相关的解决方案,而不是 @angular/compiler-cli/ngcc

我试过了:

  • 擦除 Node_Module 并强行擦除缓存。
  • npm uninstall @angular/compiler-cli 并重新安装。
  • 尝试手动更新
    但它没有修复。

  • 这是我的 package.json 文件
    {
      "name": "retail-report-mobile",
      "version": "0.0.0",
      "scripts": {
        "ng": "ng",
        "start": "ng serve",
        "start:en": "ng serve --aot --i18nFile=src/locale/language.en.xlf --i18nFormat=xlf --locale en",
        "build": "ng build --prod --build-optimizer --aot",
        "test": "ng test",
        "lint": "ng lint",
        "e2e": "ng e2e"
      },
      "private": true,
      "dependencies": {
        "@angular/animations": "^6.1.7",
        "@angular/cdk": "^6.4.2",
        "@angular/common": "^6.1.0",
        "@angular/compiler": "^6.1.0",
        "@angular/core": "^6.1.0",
        "@angular/forms": "^6.1.0",
        "@angular/http": "^6.1.0",
        "@angular/material": "^6.4.2",
        "@angular/material-moment-adapter": "^7.3.0",
        "@angular/platform-browser": "^6.1.0",
        "@angular/platform-browser-dynamic": "^6.1.0",
        "@angular/router": "^6.1.0",
        "@ngx-translate/core": "^10.0.2",
        "@swimlane/ngx-charts": "^10.0.0",
        "angular-font-awesome": "^3.1.2",
        "angular-mat-datepicker": "0.0.2",
        "angular-webstorage-service": "^1.0.2",
        "bootstrap": "^4.1.3",
        "buffer": "^5.2.1",
        "core-js": "^2.5.4",
        "devextreme": "^18.1.4",
        "devextreme-angular": "^18.1.4",
        "events": "^3.0.0",
        "font-awesome": "^4.7.0",
        "ngx-bootstrap": "^3.0.1",
        "ngx-spinner": "^6.1.2",
        "ngx-toastr": "^9.0.2",
        "ngx-translate-cache": "^0.1.0",
        "node-sass": "^4.10.0",
        "rxjs": "^6.0.0",
        "stream": "0.0.2",
        "timers": "^0.1.1",
        "zone.js": "~0.8.26"
      },
      "devDependencies": {
        "@angular-devkit/build-angular": "^0.803.5",
        "@angular/cli": "^8.3.5",
        "@angular/compiler-cli": "^7.2.15",
        "ts-loader": "^4.0.1",
        "typescript": "^3.1.6"
      }
    }
    

    我的“npm 版本”
    { 'retail-report-mobile': '0.0.0',
      npm: '6.11.3',
      ares: '1.15.0',
      brotli: '1.0.7',
      cldr: '35.1',
      http_parser: '2.8.0',
      icu: '64.2',
      modules: '64',
      napi: '4',
      nghttp2: '1.39.2',
      node: '10.16.3',
      openssl: '1.1.1c',
      tz: '2019a',
      unicode: '12.1',
      uv: '1.28.0',
      v8: '6.8.275.32-node.54',
      zlib: '1.2.11' }
    

    我的“ng版本”
    Angular CLI: 8.3.5
    Node: 10.16.3
    OS: win32 x64
    Angular: 6.1.10
    ... animations, common, compiler, core, forms, http
    ... platform-browser, platform-browser-dynamic, router
    
    Package                            Version
    ------------------------------------------------------------
    @angular-devkit/architect          0.803.5
    @angular-devkit/build-angular      0.803.5
    @angular-devkit/build-optimizer    0.803.5
    @angular-devkit/build-webpack      0.803.5
    @angular-devkit/core               7.3.9
    @angular-devkit/schematics         7.3.9
    @angular/cdk                       6.4.7
    @angular/cli                       8.3.5
    @angular/compiler-cli              7.2.15
    @angular/material                  6.4.7
    @angular/material-moment-adapter   7.3.7
    @ngtools/webpack                   8.3.5
    @schematics/angular                8.3.4
    @schematics/update                 0.803.5
    rxjs                               6.5.3
    typescript                         3.5.3
    webpack                            4.39.2
    

    我的错误日志
    [error] Error: Cannot find module '@angular/compiler-cli/ngcc'
        at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
        at Function.Module._load (internal/modules/cjs/loader.js:562:25)
        at Module.require (internal/modules/cjs/loader.js:692:17)
        at require (internal/modules/cjs/helpers.js:25:18)
        at Object.<anonymous> (C:\Users\***\Desktop\***\***\node_modules\@ngtools\webpack\src\ngcc_processor.js:10:16)
        at Module._compile (internal/modules/cjs/loader.js:778:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
        at Module.load (internal/modules/cjs/loader.js:653:32)
        at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
        at Function.Module._load (internal/modules/cjs/loader.js:585:3)
        at Module.require (internal/modules/cjs/loader.js:692:17)
        at require (internal/modules/cjs/helpers.js:25:18)
        at Object.<anonymous> (C:\Users\***\Desktop\***\***\node_modules\@ngtools\webpack\src\angular_compiler_plugin.js:23:26)
        at Module._compile (internal/modules/cjs/loader.js:778:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
        at Module.load (internal/modules/cjs/loader.js:653:32)
    

    已经对任何语法错误感到抱歉,并感谢您的帮助。

    最佳答案

    我认为您的问题出在您的版本上。
    我的意思是你使用了这么多不同的版本,它们不能很好地协同工作

    让我解释:

    Angular CLI:8.3.5 (最新版本)

    但是对于 cdk,一年前:
    "@angular/cdk": "^6.4.2",
    "@angular/common": "^6.1.0"
    ,

    typescript :3.5.3 (当 angular 6.4 存在时可能不存在)

    尝试我的建议:(我在旧项目上挣扎了很多次)

  • 幸运点:只需运行 ng update --all=true --force=true (查看 documentation 以获得正确的语法)
    它可能有效,但即使它抛出一些异常,它也提供了引用有问题的指南)
  • 使用 "ng new projectname"
  • 创建一个新的 angular 项目

    。使用 "ng serve" 开始你的项目
    如果它工作正常,您将确保您的 npmnode 工作正常(这非常重要,因为它消除了许多错误的可能性)
    (如果不是,老实说重新安装 Windows 几乎是最快的方法)

    。有了工作模板后,只需开始添加其他引用以确保您没有版本不匹配(并且不要忘记 ng serve 并观察输出结果)。
    如果您的版本不匹配,请尝试升级它们,或者如果不可能将它们删除(如果它是旧库,则无论如何都必须替换它)

    。如果它有任何问题,请将旧代码发送到这个新文件夹并尝试删除您的错误

    关于node.js - 发生未处理的异常 : Cannot find module '@angular/compiler-cli/ngcc' ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58030498/

    10-16 22:44