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

npm run graphql-deploy命令在Sanity中运行卡住无法部署如何解决?

故障原因
  • @sanity/cli版本存在已知bug,低于3.14.0版本的Sanity CLI存在GraphQL部署完成后不主动终止进程的问题,会卡在部署成功地址输出环节无后续响应。
  • 部署命令缺少非交互参数,默认的sanity graphql deploy命令会触发是否生成playground的交互式确认,无用户输入时会一直挂起。
  • Lerna子命令信号传递异常,根目录执行npm run graphql-deploy时,Lerna调用子包的部署脚本后,未正确接收子进程返回的终止信号,导致父进程一直挂起。
  • 网络拦截问题,本地代理、防火墙或DNS配置异常,导致Sanity部署请求的状态确认回执无法正常返回,进程持续等待确认信息。
  • GraphQL schema隐性异常,schema中存在的边界语法错误、未声明的自定义类型引用等问题,会导致部署校验阶段陷入死循环。
修复方案
  • 升级Sanity CLI版本:在studio目录执行npm install @sanity/cli@latest,全局安装Sanity CLI的用户同步执行npm install -g @sanity/cli@latest。
  • 补充非交互部署参数:修改studio目录下的部署脚本,添加--yes参数跳过交互式确认,调整后命令为sanity graphql deploy --yes。
  • 调整Lerna执行配置:修改根目录package.json中的graphql-deploy脚本为lerna run graphql-deploy --stream --no-prefix,确保子进程输出与信号正常传递到父进程。
  • 排查网络问题:临时关闭本地代理、防火墙后重试部署,确认是否为网络拦截导致的进程挂起。
  • 本地预校验schema:在studio目录执行npx sanity graphql validate,排查并修复schema中存在的语法错误与类型引用问题。
  • 强制进程终止:若以上操作均无效,修改studio目录package.json中的graphql-deploy脚本为sanity graphql deploy --yes && exit 0,强制进程在部署逻辑执行完成后主动退出。

故障场景截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:06:09