Angular12升级13.0.3出现readWorkspace未定义迁移错误如何解决?
Angular 12 升级 13.0.3 报错修复方案
错误原因
该报错是Angular 13.0早期版本(13.0.0~13.0.3)的官方schematics脚本已知bug,执行routerLink空值自动迁移逻辑时,工作区读取方法调用上下文错误,触发undefined属性读取异常。
修复方案
方案1:跳过自动迁移,手动完成升级
- 执行升级命令时添加
--skip-migrations参数,跳过自动迁移脚本直接更新依赖版本:
ng update @angular/core@13 @angular/cli@13 --skip-migrations- 手动遍历项目所有HTML模板文件,将所有
[routerLink]=""的写法替换为[routerLink]="[]",该改动是此次迁移的唯一逻辑 - 执行
npm install重装依赖后启动项目验证功能即可
- 执行升级命令时添加
方案2:升级CLI到修复版本后再执行迁移
- 先卸载当前本地和全局的Angular CLI,安装13分支的最新稳定版本:
npm uninstall -g @angular/cli npm uninstall @angular/cli npm install -g @angular/cli@13.3.11 npm install @angular/cli@13.3.11 --save-dev- 删除项目根目录下的
node_modules文件夹、package-lock.json文件 - 重新执行升级命令,即可正常完成所有自动迁移流程
验证
修复完成后执行ng serve启动项目,检查路由跳转逻辑正常、控制台无报错即修复完成。
内容的提问来源于stack exchange,提问作者Benedict Chng
相关产品推荐
相关产品推荐

