You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nx 13迁移失败:update-tasks-runner步骤报错求助

Angular + Nx 迁移失败问题分析与解决方案

背景与问题重现

已将Angular应用从12版本升级至13.3.11版本,执行nx migrate 13.10.6成功生成migrations.json文件,但在执行迁移时,于「13-10-0-update-tasks-runner」步骤失败,收到Nx返回的错误:

  • Failed to run 13-10-0-update-tasks-runner from @nrwl/workspace. This workspace is NOT up to date!
  • Cannot read property 'default' of undefined

堆栈跟踪:

TypeError: Cannot read property 'default' of undefined
at updateTasksRunner (C:\Users\SD829695\Workspace\Payviewer UI\sdworx-workspace\node_modules@nrwl\workspace\src\migrations\update-13-10-0\update-tasks-runner.js:7:83)
at C:\Users\SD829695\AppData\Local\Temp\tmp-22332-q4v32FBBq7aD\node_modules\nx\src\command-line\migrate.js:758:15
at Generator.next ()
at C:\Users\SD829695\AppData\Local\Temp\tmp-22332-q4v32FBBq7aD\node_modules\tslib\tslib.js:118:75
at new Promise ()
at Object.__awaiter (C:\Users\SD829695\AppData\Local\Temp\tmp-22332-q4v32FBBq7aD\node_modules\tslib\tslib.js:114:16)
at runNxMigration (C:\Users\SD829695\AppData\Local\Temp\tmp-22332-q4v32FBBq7aD\node_modules\nx\src\command-line\migrate.js:737:20)
at C:\Users\SD829695\AppData\Local\Temp\tmp-22332-q4v32FBBq7aD\node_modules\nx\src\command-line\migrate.js:631:43
at Generator.next ()
at fulfilled (C:\Users\SD829695\AppData\Local\Temp\tmp-22332-q4v32FBBq7aD\node_modules\tslib\tslib.js:115:62)

操作中的错误

  1. 跨小版本迁移跳过前置验证:直接从Angular 13.3.11对应的Nx版本跳转到13.10.6,未确保当前Workspace的Nx依赖先同步到与Angular版本兼容的最新13.x小版本,导致Workspace内部状态不一致,迁移脚本无法正常读取配置。
  2. 迁移前未保证Workspace干净:未清理依赖缓存或存在未提交的配置变更,导致迁移脚本执行时无法正确解析nx.json中的tasksRunnerOptions配置,触发Cannot read property 'default' of undefined错误。

解决步骤

步骤1:回退到干净的Workspace状态

  • 撤销nx migrate对package.json的修改,删除自动生成的migrations.json文件
  • 删除node_modules目录和锁文件(package-lock.json或yarn.lock)
  • 重新执行npm install或yarn install,确保依赖完整且无缓存问题

步骤2:先升级到与Angular兼容的Nx小版本

  • 执行nx migrate @nrwl/workspace@13.9.7(此版本为Angular 13.3.11兼容的最新13.x小版本,可根据实际情况调整)
  • 安装更新后的依赖:npm install或yarn install
  • 执行nx migrate --run-migrations完成小版本迁移,确认Workspace状态正常

步骤3:重新执行目标版本迁移

  • 执行nx migrate 13.10.6生成新的迁移配置
  • 安装依赖:npm install或yarn install
  • 执行nx migrate --run-migrations完成全量迁移

步骤4:手动修复tasks-runner配置(可选)

如果上述步骤仍失败,手动检查并修复nx.json中的配置:

  1. 打开nx.json,找到tasksRunnerOptions节点
  2. 确保default字段存在且配置正确,示例配置如下:
"tasksRunnerOptions": {
  "default": {
    "runner": "@nrwl/workspace/tasks-runners/default",
    "options": {
      "cacheableOperations": ["build", "test", "lint"]
    }
  }
}
  1. 保存配置后,重新执行nx migrate --run-migrations

内容的提问来源于stack exchange,提问作者Matt Quinn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 17:35:17