Angular项目构建失败:Data path ".builders['app-shell']"缺少必填属性'class'
解决Angular构建报错:Data path ".builders['app-shell']" should have required property 'class'
检查@angular-devkit/build-angular与Angular CLI版本匹配
Angular CLI和@angular-devkit/build-angular版本必须严格对应,升级Node后很容易出现版本不兼容问题。先查看当前两个包的版本:npm list @angular/cli @angular-devkit/build-angular如果版本不匹配,卸载现有build-angular包,安装和CLI同版本的:
npm uninstall @angular-devkit/build-angular npm install @angular-devkit/build-angular@<你的CLI版本号>清理依赖缓存并重装
缓存或损坏的依赖文件也可能引发这类错误,执行以下步骤:- 强制清理npm缓存:
npm cache clean --force - 删除node_modules文件夹和package-lock.json文件:
- macOS/Linux:
rm -rf node_modules package-lock.json - Windows:
rmdir /s /q node_modules && del package-lock.json
- macOS/Linux:
- 重新安装所有依赖:
npm install
- 强制清理npm缓存:
校验angular.json中的app-shell配置
打开angular.json文件,找到对应项目的app-shell构建配置,确保builder使用的是官方正确路径@angular-devkit/build-angular:app-shell,示例配置如下:"app-shell": { "builder": "@angular-devkit/build-angular:app-shell", "options": { "browserTarget": "你的项目名:build", "serverTarget": "你的项目名:server" } }如果配置里的builder是自定义或旧版路径,替换成官方的即可。
切换到项目兼容的Node.js版本
不同Angular版本对Node.js有明确的版本要求,比如Angular 14只支持Node.js 14.15+或16.x,Angular 15要求16.x及以上。可以用Node版本管理器(nvm)切换到对应版本:# 安装指定版本 nvm install <兼容版本号> # 切换到该版本 nvm use <兼容版本号>排查第三方依赖冲突
部分第三方插件(比如自定义构建器、schematics)可能和新版本Node或Angular不兼容。可以临时移除package.json里的非核心依赖,重装后尝试构建,逐步排查出冲突的依赖。
内容的提问来源于stack exchange,提问作者Levy Asaf
相关产品推荐
相关产品推荐

