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

NX升级至12.9版本后开启Computation Caching导致部分库构建异常退出

NX monorepo升级后开启计算缓存构建异常问题排查

问题描述

  • 已完成NX monorepo从8.x版本到12.9版本的全量升级,升级后构建耗时大幅增加但可正常结束
  • 开启NX Computation Caching功能优化构建效率后,部分库构建流程无征兆直接退出,无任何错误或成功提示;关闭该功能时构建日志输出完全正常
  • 追加--verbose参数运行构建任务,未输出额外排查信息,当前只能关闭计算缓存执行构建,团队对该方案接受度极低

环境信息

nx report命令输出如下:

NX Report complete - copy this into the issue template

Node : 14.17.6
OS : win32 x64
npm : 6.14.15

nx : 12.9.0
@nrwl/angular : 12.9.0
@nrwl/cli : 12.9.0
@nrwl/cypress : 12.9.0
@nrwl/devkit : 12.9.0
@nrwl/eslint-plugin-nx : 12.9.0
@nrwl/express : 12.9.0
@nrwl/jest : 12.9.0
@nrwl/linter : 12.9.0
@nrwl/nest : Not Found
@nrwl/next : Not Found
@nrwl/node : 12.9.0
@nrwl/nx-cloud : Not Found
@nrwl/react : Not Found
@nrwl/schematics : 8.12.11
@nrwl/tao : 12.9.0
@nrwl/web : Not Found
@nrwl/workspace : 12.9.0
@nrwl/storybook : 12.9.0
@nrwl/gatsby : Not Found
typescript : 4.1.5

排查方向与修复建议

  1. 残留旧版本依赖冲突修复
    当前环境中存在8.12.11版本的@nrwl/schematics依赖,该包在NX 10.x之后就已被废弃整合进核心包,跨大版本的残留依赖是最可能导致缓存逻辑异常的原因。建议先完全卸载该包:
npm uninstall @nrwl/schematics

卸载后清空node_modules目录和package-lock.json锁文件,重新安装所有依赖后测试开启缓存的构建表现。

  1. 构建输出捕获逻辑校验
    NX的计算缓存会捕获所有构建任务的标准输出/错误输出用于缓存校验,如果你的项目存在自定义构建器、或者修改过默认的Angular构建配置,非标准的输出逻辑可能导致缓存模块捕获输出时死锁或异常退出。可以先将出问题的库的构建配置还原为NX 12.9默认生成的配置,逐一对比定位是否为配置差异导致的问题。

  2. Windows平台适配优化
    当前使用的是Windows系统,NX 12.9版本存在多个Windows平台下路径处理不当导致缓存校验异常的已知问题。可以尝试将NX升级到12.10.x以上的后续小版本,或临时添加环境变量NX_NATIVE_WATCHER=false禁用原生文件监听后再测试。

  3. 缓存目录权限排查
    检查项目根目录下.nx/cache目录的读写权限,如果缓存目录被安全软件锁定、或者当前用户权限不足,也会导致缓存写入时进程无报错直接退出。可以手动删除整个.nx目录后重新运行构建测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:15:05