You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular项目执行npm run build时提示找不到@angular/compiler-cli/ngcc模块

解决Angular构建报错:Cannot find module '@angular/compiler-cli/ngcc'

刚换笔记本重装了Node.js和Angular,当前环境是Angular CLI 9.0.1、Node 12.15.0(win32 x64),跑项目的npm run build时直接踩坑了,报找不到@angular/compiler-cli/ngcc模块,完整的报错信息和项目配置如下:

项目package.json配置

{ 
"name": "webprimeng", 
"version": "0.0.0", 
"scripts": { 
"ng": "ng", 
"start": "ng serve", 
"build": "ng build --prod --output-path ../src/main/resources/static --base-href /transaction/ --deploy-url /transaction/", 
"watch": "ng build --prod --output-path ../src/main/resources/static --base-href /transaction/ --deploy-url /transaction/ --watch", 
"test": "ng test", 
"lint": "ng lint", 
"e2e": "ng e2e" 
}, 
"private": true, 
"dependencies": { 
"@angular/animations": "~7.0.0", 
"@angular/common": "~7.0.0", 
"@angular/compiler": "~7.0.0", 
"@angular/core": "~7.0.0", 
"@angular/forms": "~7.0.0", 
"@angular/http": "~7.0.0", 
"@angular/platform-browser": "~7.0.0", 
"@angular/platform-browser-dynamic": "~7.0.0", 
"@angular/router": "~7.0.0", 
"@ng-bootstrap/ng-bootstrap": "^3.3.1", 
"@ngx-pwa/local-storage": "^7.4.2", 
"angular-font-awesome": "^3.1.2", 
"angular-web-storage": "^4.1.0", 
"bootstrap": "^4.3.1", 
"core-js": "^2.6.10", 
"ng2-cookies": "^1.0.12", 
"primeflex": "^1.0.0", 
"primeicons": "^1.0.0", 
"primeng": "^6.1.7", 
"rxjs": "^6.5.3", 
"rxjs-compat": "^6.5.3", 
"zone.js": "^0.8.29" 
}, 
"devDependencies": { 
"@angular-devkit/build-angular": "^0.900.1", 
"@angular/cli": "^9.0.1", 
"@angular/compiler-cli": "^9.0.0", 
"@angular/language-service": "~7.0.0", 
"@types/jasmine": "^2.8.16", 
"@types/jasminewd2": "^2.0.8", 
"@types/node": "~8.9.4", 
"codelyzer": "~4.5.0", 
"jasmine-core": "~2.99.1", 
"jasmine-spec-reporter": "~4.2.1", 
"karma": "~3.0.0", 
"karma-chrome-launcher": "~2.2.0", 
"karma-coverage-istanbul-reporter": "^2.0.6", 
"karma-jasmine": "~1.1.2", 
"karma-jasmine-html-reporter": "^0.2.2", 
"protractor": "^5.4.2", 
"ts-node": "~7.0.0", 
"tslint": "~5.11.0", 
"typescript": "~3.1.6" 
} 
}

完整错误信息

An unhandled exception occurred: Cannot find module '@angular/compiler-cli/ngcc'
Require stack:
- D:\workspace\webprimeng\primeng\node_modules\@ngtools\webpack\src\ngcc_processor.js
- D:\workspace\webprimeng\primeng\node_modules\@ngtools\webpack\src\angular_compiler_plugin.js
- D:\workspace\webprimeng\primeng\node_modules\@ngtools\webpack\src\index.js
- D:\workspace\webprimeng\primeng\node_modules\@angular-devkit\build-angular\src\angular-cli-files\models\webpack-configs\typescript.js
- D:\workspace\webprimeng\primeng\node_modules\@angular-devkit\build-angular\src\angular-cli-files\models\webpack-configs\index.js
- D:\workspace\webprimeng\primeng\node_modules\@angular-devkit\build-angular\src\browser\index.js
- D:\workspace\webprimeng\primeng\node_modules\@angular-devkit\architect\node\node-modules-architect-host.js
- D:\workspace\webprimeng\primeng\node_modules\@angular-devkit\architect\node\index.js
- D:\workspace\webprimeng\primeng\node_modules\@angular\cli\models\architect-command.js
- D:\workspace\webprimeng\primeng\node_modules\@angular\cli\commands\build-impl.js
- D:\workspace\webprimeng\primeng\node_modules\@angular-devkit\schematics\tools\export-ref.js
- D:\workspace\webprimeng\primeng\node_modules\@angular-devkit\schematics\tools\index.js
- D:\workspace\webprimeng\primeng\node_modules\@angular\cli\utilities\json-schema.js
- D:\workspace\webprimeng\primeng\node_modules\@angular\cli\models\command-runner.js
- D:\workspace\webprimeng\primeng\node_modules\@angular\cli\lib\cli\index.js
- D:\workspace\webprimeng\primeng\node_modules\@angular\cli\lib\init.js
- D:\workspace\webprimeng\primeng\node_modules\@angular\cli\bin\ng
See "C:\Users\yyy~1\AppData\Local\Temp\ng-hLuf5T\angular-errors.log" for further details.
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file C:\Windows\system32\cmd.exe
npm ERR! errno ENOENT
npm ERR! webprimeng@0.0.0 build: `ng build --prod --output-path ../src/main/resources/static --base-href /transaction/ --deploy-url /transaction/`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the webprimeng@0.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\yyyy\AppData\Roaming\npm-cache\_logs\2020-02-09T14_34_11_713Z-debug.log

问题原因分析

一眼就能看出问题所在:你的项目主依赖是Angular 7.x(dependencies里所有@angular/*都是~7.0.0),但开发依赖里却用了Angular 9.x的@angular/compiler-cli(^9.0.0)和@angular-devkit/build-angular(^0.900.1),版本完全不匹配!

ngcc是Angular 9才引入的兼容性编译工具,Angular 7的@angular/compiler-cli里根本没有这个模块,所以构建时Webpack找不到它就报错了。

解决方案步骤

1. 统一Angular版本到7.x

修改package.json里的devDependencies部分,把Angular相关的开发依赖降到和项目主版本一致:

"@angular-devkit/build-angular": "~0.7.0",
"@angular/cli": "~7.0.0",
"@angular/compiler-cli": "~7.0.0",

提示:Angular CLI版本必须和项目的Angular主版本对应,7.x的项目就用7.x的CLI,9.x的项目用9.x的CLI,跨版本混用必出问题。

2. 清理旧依赖并重新安装

  • 删除项目根目录的node_modules文件夹
  • 删除package-lock.json文件(如果用Yarn的话就删yarn.lock)
  • 执行命令重新安装依赖:
    npm install
    

3. 验证版本一致性

安装完成后,执行以下命令确认CLI和项目依赖版本匹配:

ng version

输出里的Angular CLI和@angular/core等核心包版本应该都是7.x系列。

额外建议

如果你确实想把项目升级到Angular 9,别直接改依赖版本,一定要按照Angular官方的升级指南逐步操作,同时还要检查PrimeNG、@ng-bootstrap/ng-bootstrap这些第三方库是否支持Angular 9,避免出现更多兼容性问题。

内容的提问来源于stack exchange,提问作者A. perera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 14:19:10