Nx工作区通过nx migrate升级Angular13至14后生成组件报错
问题根因
报错本质是Nx工作区依赖版本与升级后的Angular 14版本不兼容。Angular 14新增了standalone独立组件相关的生成配置项,但仅执行Angular版本迁移时,Nx的Angular适配依赖不会同步升级到匹配的14.x大版本。旧版本Nx的组件生成逻辑会默认传入standalone参数,而当前工作区的Schematic校验规则未定义该字段,直接将其判定为非法额外属性抛出校验失败错误。
解决步骤
- 执行
nx migrate @nrwl/angular@14,将Nx的Angular适配包升级到与Angular 14对齐的14.x版本,生成对应迁移配置文件。 - 执行当前项目所用包管理器的安装命令:npm对应
npm install,yarn对应yarn install,pnpm对应pnpm install,完成升级后依赖的安装。 - 依赖安装完成后执行
nx migrate --run-migrations,跑完Nx预置的所有版本迁移脚本,自动修正工作区内的版本兼容配置。 - 若上述操作后仍报错,直接删除本地
node_modules目录、对应包管理器的lock文件(package-lock.json/yarn.lock/pnpm-lock.yaml),重新执行依赖安装,清理本地残留的旧版本依赖缓存。 - 版本校验:执行
npm ls @angular-devkit/schematics查看依赖树,如果存在多个版本的该依赖包残留,手动在package.json中将所有Angular相关开发依赖的版本号统一对齐到当前安装的14.x具体版本即可。
内容的提问来源于stack exchange,提问作者flyingpluto7
相关产品推荐
相关产品推荐

