有位粉丝问a哥自己的Claude code几个小时前还能使用,但是下午在终端输入claude。却出现下面的红色报错。

出现上述报错的原因

Claude Code 官方每隔一段时间会做更新,可能在近期更新了发布策略,但是你的npm拉取了一个与你电脑架构不匹配的版本。比如你的是64位,错误安装了32位。

今天下午 Claude Code 自己触发了一次更新(自动升级),但更新过程没跑完关键的一步,把真正的程序文件弄丢了。

  1. 以前能用:你最初安装时,安装程序把真正的 claude.exe(265MB 的原生程序)正确放好了,所以一直正常。

  2. 今天下午:Claude Code 有自动更新机制,它在后台悄悄下载了新版本并替换了文件。但它的安装分两步——先放一个 500 字节的"占位空壳",再通过一个叫 install.cjs 的脚本把真正的程序下载下来、覆盖空壳。

  3. 卡在第二步:今天的更新里,这个下载/覆盖步骤最可能是因为网络中断没成功执行。结果 bin/ 里就只剩那个"空壳"文件,真正的程序没回来。

检查步骤

1、先检查电脑是否有claude code。

使用下面命令查npm的路径,然后到打印的路径下查看是否有claude.exe、claude.cmd等相关文件

2、查看claude.exe文件大小

如果Claude Code 的 claude.exe 是一个 500 字节大小。那么就是上述原因。因为真正的 claude.exe 在 Windows 上是一个原生二进制(约 260MB)。

解决办法:

方法一:

1、把Claude code默认的自动更新关掉(不让它在你不知情时偷偷去下载)+ 以后手动更新时走代理(保证那次下载能拉全)
2、打开你电脑的powershell输入以下命令:
[Environment]::SetEnvironmentVariable("DISABLE_AUTOUPDATER", "1", "User")
  • DISABLE_AUTOUPDATER = 变量名,是 Claude Code 官方约定的开关
  • "1" = 值,表示"开启禁用"
  • "User" = 作用域,写进当前用户的环境变量(不是系统级,所以不用管理员;也不只是当前窗口,而是常驻)

官方还支持另一种写法——在 Claude Code 的 settings.json 里加 "env": { "DISABLE_AUTOUPDATER": "1" }

3、Claude Code 怎么识别它:程序每次启动时检查这个环境变量,发现是 1,就跳过"后台检查更新 + 自动下载"那一步

4、如果你想更新,手动更新仍然可用——关键就是升级时一定让代理/VPN 先开着,保证原生二进制那次下载能拉全。

补充:

安装cc-switch,这个软件不仅可以快速切换模型,而且可以可视化检查cc的版本。

更多推荐