安装Sanity时出现Error: spawn cmd ENOENT报错无法完成登录
错误触发原因
核心报错为spawn cmd ENOENT,属于Node.js子进程调用异常:Sanity CLI运行到浏览器授权登录环节时,需要调用Windows系统自带的cmd.exe执行start命令,拉起默认浏览器打开GitHub授权页面,但进程无法在系统路径中找到cmd.exe可执行文件,触发未捕获的error事件直接崩溃,错误码-4058是Windows平台下对应「目标程序/路径不存在」的系统错误。
排查修复步骤
- 先验证cmd程序本身是否正常:按Win+R快捷键输入
cmd回车,若无法正常拉起命令提示符,说明cmd.exe被误删、或被组策略限制访问。可以打开管理员权限的PowerShell,执行sfc /scannow扫描修复损坏的系统文件,恢复cmd.exe的正常访问权限。 - 检查系统环境变量配置:若cmd可以手动正常打开,右键「此电脑」选择「属性-高级系统设置-环境变量」,在系统变量的Path列表中确认存在
C:\Windows\System32路径,缺失则手动新增,保存配置后重启终端,重新执行Sanity安装登录命令即可。 - 终端环境兼容排查:如果是在Git Bash、WSL、第三方终端模拟器中运行的Sanity命令,这类环境可能存在Windows原生程序路径映射异常的问题,直接切换到系统自带的PowerShell或命令提示符窗口重新执行操作即可。
- 临时绕过方案:不需要等工具自动拉起浏览器,直接把报错信息里的授权链接手动复制到浏览器打开完成授权即可,注意还原链接里的转义字符,实际可用的授权地址为:
https://api.sanity.io/v1/auth/login/github?type=listen&uuid=9b8a14a23276e73608528a6408902f44&source=cli
授权完成后CLI会自动校验登录状态,不会影响后续安装流程。
内容的提问来源于stack exchange,提问作者Tech Mobo
相关产品推荐
相关产品推荐

