Angular 10升级至Angular 13执行ng add @angular-eslint/schematics时遇NOT SUPPORTED错误求助
解决Angular 13升级中
ng add @angular-eslint/schematics的"id" schema错误 这个报错本质是JSON Schema规范的版本兼容问题——旧版本用"id"定义schema标识,而新版规范要求改用"$id",通常是缓存的旧依赖、版本不匹配或残留配置导致的,下面是几个可行的解决步骤:
步骤1:清理包管理器缓存
旧缓存里可能存着带有"id"关键字的过时schema文件,先彻底清理:
# 使用npm的话 npm cache clean --force # 使用yarn的话 yarn cache clean
步骤2:确保@angular-eslint与Angular版本严格匹配
Angular 13必须对应@angular-eslint的13.x版本,版本不兼容是这类问题的常见诱因。先移除可能存在的不匹配依赖,再指定版本安装:
# 先卸载已有的angular-eslint相关包 npm remove @angular-eslint/schematics @angular-eslint/eslint-plugin @angular-eslint/eslint-plugin-template @angular-eslint/template-parser # 安装与Angular 13匹配的版本 npm install --save-dev @angular-eslint/schematics@13 @angular-eslint/eslint-plugin@13 @angular-eslint/eslint-plugin-template@13 @angular-eslint/template-parser@13
步骤3:检查并替换项目中的旧schema关键字
如果项目里有自定义的schema配置文件(非node_modules目录下),手动将所有"id"替换为"$id",符合最新JSON Schema规范要求。
步骤4:重新执行初始化命令
完成上述操作后,再次运行Angular ESLint的初始化命令:
ng add @angular-eslint/schematics@13
如果还是有问题,可以检查package.json里的所有Angular相关依赖,确保它们都是13.x版本,避免混合不同版本的依赖引发冲突。
内容的提问来源于stack exchange,提问作者Satish Singh




