在运行“ng serve”时,我的应用程序出现“找不到模块'@angular/compiler-cli/ngcc'”的错误。

4
我正在尝试运行我的应用程序,但出现了这个错误。我试过一些在互联网上找到的解决方案,例如卸载angular/cli,重新安装它,检查我的package.json文件中的版本是否正确,如果devDependencies中是@angular/cli而不是@angular-cli,以及其他一些事情,例如卸载和安装npm,删除node modules并重新安装它,但是之前的任何一种方法都没有解决我的问题... 这是我的package.json文件:
    {
  "name": "techlog-admin",
  "version": "3.2.1",
  "license": "MIT",
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "IE 11"
  ],
  "scripts": {
    "ng": "ng",
    "conventional-changelog": "conventional-changelog",
    "start": "ng serve",
    "build": "ng build",
    "build:prod": "npm run build -- --prod --aot",
    "test": "ng test",
    "test:coverage": "rimraf coverage && npm run test -- --code-coverage",
    "lint": "ng lint",
    "lint:fix": "ng lint techlog-admin-demo --fix",
    "lint:styles": "stylelint ./src/**/*.scss",
    "lint:ci": "npm run lint && npm run lint:styles",
    "pree2e": "webdriver-manager update --standalone false --gecko false",
    "e2e": "ng e2e",
    "docs": "compodoc -p src/tsconfig.app.json -d docs",
    "docs:serve": "compodoc -p src/tsconfig.app.json -d docs -s",
    "prepush": "npm run lint:ci",
    "release:changelog": "npm run conventional-changelog -- -p angular -i CHANGELOG.md -s"
  },
  "dependencies": {
    "@agm/core": "^1.0.0-beta.5",
    "@angular/animations": "^7.2.13",
    "@angular/cdk": "^7.3.7",
    "@angular/common": "^7.2.11",
    "@angular/compiler": "^7.2.11",
    "@angular/core": "^7.2.11",
    "@angular/forms": "^7.2.11",
    "@angular/http": "^7.2.11",
    "@angular/material": "^7.3.7",
    "@angular/platform-browser": "^7.2.11",
    "@angular/platform-browser-dynamic": "^7.2.11",
    "@angular/router": "^7.2.11",
    "@asymmetrik/ngx-leaflet": "3.0.1",
    "@fortawesome/angular-fontawesome": "^0.3.0",
    "@fortawesome/fontawesome-svg-core": "^1.2.17",
    "@fortawesome/free-solid-svg-icons": "^5.8.1",
    "@nebular/auth": "3.4.2",
    "@nebular/bootstrap": "3.4.2",
    "@nebular/moment": "^3.4.0",
    "@nebular/security": "3.4.2",
    "@nebular/theme": "3.4.2",
    "@ng-bootstrap/ng-bootstrap": "^4.0.0",
    "@ng-idle/core": "^6.0.0-beta.5",
    "@ng-idle/keepalive": "^6.0.0-beta.5",
    "@ngx-translate/core": "^11.0.1",
    "@swimlane/ngx-charts": "^10.0.0",
    "angular-tree-component": "7.2.0",
    "angular2-chartjs": "0.4.1",
    "angular2-toaster": "^7.0.0",
    "bootstrap": "^4.3.1",
    "chart.js": "^2.8.0",
    "ckeditor": "4.7.3",
    "classlist.js": "1.1.20150312",
    "core-js": "2.5.1",
    "echarts": "^4.0.2",
    "eva-icons": "^1.1.0",
    "intl": "1.2.5",
    "ionicons": "2.0.1",
    "jquery": "^3.4.0",
    "leaflet": "1.2.0",
    "nebular-icons": "1.1.0",
    "ng2-ckeditor": "^1.2.2",
    "ng2-completer": "2.0.8",
    "ng2-smart-table": "1.3.5",
    "ngx-echarts": "^4.0.1",
    "ngx-show-hide-password": "^2.0.3",
    "ngx-spinner": "^7.1.4",
    "ngx-typeahead": "^6.2.0",
    "normalize.css": "6.0.0",
    "or": "^0.2.0",
    "pace-js": "1.0.2",
    "roboto-fontface": "0.8.0",
    "rxjs": "6.4.0",
    "rxjs-compat": "6.3.0",
    "socicon": "3.0.5",
    "tinymce": "4.5.7",
    "ts-md5": "^1.2.4",
    "tslib": "^1.9.0",
    "typeface-exo": "0.0.22",
    "web-animations-js": "2.2.5",
    "zone.js": "^0.8.29"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.801.3",
    "@angular/cli": "^8.1.3",
    "@angular/compiler-cli": "^7.2.15",
    "@angular/language-service": "7.2.11",
    "@compodoc/compodoc": "^1.1.10",
    "@fortawesome/fontawesome-free": "^5.2.0",
    "@types/d3-color": "1.0.5",
    "@types/googlemaps": "^3.30.4",
    "@types/jasmine": "2.5.54",
    "@types/jasminewd2": "2.0.3",
    "@types/leaflet": "1.2.3",
    "@types/node": "6.0.90",
    "codelyzer": "^4.5.0",
    "conventional-changelog-cli": "1.3.4",
    "husky": "0.13.3",
    "jasmine-core": "2.6.4",
    "jasmine-spec-reporter": "4.1.1",
    "karma": "1.7.1",
    "karma-chrome-launcher": "2.1.1",
    "karma-cli": "1.0.1",
    "karma-coverage-istanbul-reporter": "1.3.0",
    "karma-jasmine": "1.1.0",
    "karma-jasmine-html-reporter": "0.2.2",
    "npm-run-all": "4.0.2",
    "protractor": "5.1.2",
    "rimraf": "2.6.1",
    "stylelint": "7.13.0",
    "ts-node": "3.2.2",
    "tslint": "5.7.0",
    "tslint-language-service": "^0.9.9",
    "typescript": "3.2.4"
  }
}

如果你需要更多信息,请问我,我会尽快发布!谢谢。

2
保持与项目的 @angular/cli 版本同步。 - nircraft
3个回答

2

尝试以下几个方法来解决这个错误:

您可以使用以下命令来查看是否有效。

Original Answer翻译成"最初的回答"

npm uninstall angular-cli -g
npm uninstall angular-cli --save
npm install -g @angular/cli
npm install @angular/cli --save
npm install @angular/compiler-cli --save

1
我尝试了其他Stackoverflow和github线程中找到的所有方法,但唯一有效的方法是将angular@cli降级到7.2(这是我的项目中当前的angular包版本),并手动安装以下软件包:npm install @angular/compiler-cli --save和npm install @angular-devkit/build-angular。虽然我的package.json文件包含这两个依赖项,但似乎npm install无法安装它们,所以我不得不手动安装。据我所知,这是新版和旧版angular/cli之间的问题。希望我能帮到你!

我不确定,但我认为这没有太大意义。如果angular/cli存在向后兼容性问题,我宁愿只在我的项目依赖项中安装必要的东西。在极端情况下,我会创建一个虚拟机或容器来处理不同的项目。哈哈 - Lucas Thimoteo

0

我几个月前也遇到了同样的问题。我尝试了以下步骤,然后就能够编译代码而不再出现任何问题:

  • 您可以创建一个空的Angular项目,并比较它们的package.json文件,然后手动编辑Angular依赖项。
  • 删除node_modulespackage-lock.json
  • 运行npm i --save

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接