Angular 16项目启动报错:@angular/compiler无TmplAstBoundDeferredTrigger导出
Angular项目启动报错:@angular/compiler 未导出TmplAstBoundDeferredTrigger
问题详情
项目为Angular 16.1.0版本,原本运行正常,重启VS Code后执行ng serve时触发报错。已尝试删除node_modules、清理缓存并重新安装依赖,问题未解决。
报错信息
The requested module '@angular/compiler' does not provide an export named 'TmplAstBoundDeferredTrigger'
项目package.json内容
{ "name": "oz-main-site", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test" }, "private": true, "dependencies": { "@angular/animations": "^16.1.0", "@angular/common": "^16.1.0", "@angular/compiler": "^16.1.0", "@angular/core": "^16.1.0", "@angular/forms": "^16.1.0", "@angular/localize": "^16.2.12", "@angular/material": "^16.0.2", "@angular/platform-browser": "^16.1.0", "@angular/platform-browser-dynamic": "^16.1.0", "@angular/router": "^16.1.0", "@ng-bootstrap/ng-bootstrap": "^15.1.2", "bootstrap": "^5.3.0", "bootstrap-icons": "^1.10.5", "hammerjs": "^2.0.8", "jquery": "^3.7.1", "ngx-owl-carousel-o": "^16.0.0", "remixicon": "^3.5.0", "rxjs": "~7.8.0", "swiper": "^8.4.7", "tslib": "^2.3.0", "zone.js": "~0.13.0" }, "devDependencies": { "@angular-devkit/build-angular": "^16.1.0", "@angular/cli": "~16.1.0", "@angular/compiler-cli": "^16.1.0", "@types/hammerjs": "^2.0.45", "@types/jasmine": "~4.3.0", "jasmine-core": "~4.6.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.1.3" } }
ng version输出
Angular CLI: 14.2.6 Node: 16.14.2 Package Manager: npm 8.5.0 OS: win32 x64 Angular: undefined ... Package Version ------------------------------------------------------ @angular-devkit/architect 0.1402.6 @angular-devkit/core 14.2.6 @angular-devkit/schematics 14.2.6 @schematics/angular 14.2.6
解决方案
核心原因
全局安装的Angular CLI版本(14.2.6)与项目依赖的Angular版本(16.1.0)不匹配。TmplAstBoundDeferredTrigger是Angular 16新增的编译器API,旧版本CLI无法识别该导出项,导致启动失败。
修复步骤
- 卸载全局旧版本Angular CLI:
npm uninstall -g @angular/cli - 强制清理npm缓存:
npm cache clean --force - 安装与项目匹配的16.1.0版本CLI:
npm install -g @angular/cli@16.1.0 - 进入项目目录,删除现有依赖文件并重新安装:
rm -rf node_modules package-lock.json npm install - 重新启动项目:
ng serve
额外检查
- 确认VS Code终端使用的Node环境版本符合要求(Angular 16支持Node 16.14+、18.x或20.x,当前Node 16.14.2满足条件)。
- 若使用nvm等版本管理工具,确保已切换到项目对应的Node版本。
内容的提问来源于stack exchange,提问作者Asmaa Rashad
相关产品推荐
相关产品推荐

