Claude 代码 更新抛弃 JS 改用原生二进制,告别 Node.js 依赖

robot
摘要生成中

Anthropic 于 v2.1.113 升级 Claude Code 分发方式:npm 包改为各平台预先编译好的原生二进制执行文件,而非 JavaScript 程序码。此版本将 npm 包从 JavaScript 程序码改为各平台预编译的原生二进制执行文件,消除了每次启动都要等待 Node.js 进程与 JIT 预热的隐性成本。
(前情提要:Claude Opus 4.7 深度介绍》编码能力升级、1M 不加价,实测缺点在哪?)
(背景补充:Anthropic 推出视觉设计神器「Claude Design」!一句话秒做简报、企划书、App 原型)

本文目录

切换

  • 版本里换了什么?
  • 技术层面:两种做法差在哪
  • 具体带来什么改变
  • 用户需要做什么?
  • 更大的趋势:CLI 工具走向原生化

每次敲下 claude,系统都在重复做一件事:启动 Node.js,读入所有 JavaScript 指令码,完成 JIT 预热,再进入 CLI 主循环。

这段延迟对长时间执行的 Web 服务器无关痛痒,但 CLI 工具每次调用都得从头重跑,一天几十次下来,这个等待时间就成了最碍事的性能问题。Anthropic 用一次预设更新解决了这个问题。

版本里换了什么?

从 v2.1.113 起,npm install -g @anthropic-ai/claude-code 装进去的东西变了。

表面上,指令没有任何改动;里面,npm 包不再分发 JavaScript 程序码,而是根据用户的操作系统(macOS / Linux / Windows,ARM / x86)拉取对应的预先编译好的原生二进制执行文件,再通过 postinstall 脚本连接到正确位置。

用户端的安装流程:一行指令,一切照旧。

技术层面:两种做法差在哪

JS 版本的启动路径(v2.1.113 之前)

用户每次执行 claude,系统要走完四个步骤:

  • 拉起 Node.js 程序:操作系统启动 Node.js 执行环境
  • 读入指令码:Node.js 读取 Claude Code 的所有 .js 文件
  • JIT 预热:即时编译器将 JavaScript 编译成机器码
  • 进入 CLI 主循环:这才算真正开始工作

原生二进制的启动路径(v2.1.113 起)

Anthropic 在发布时就把 JavaScript 引擎与全部程序码打包进一个可执行文件,针对各平台分别编译。操作系统收到的是它认识的原生格式:直接载入,直接执行,跳过 Node.js 启动程序与 JIT 预热的全部开销。

具体带来什么改变

项目
以前(JS 版本)
现在(原生二进制)
启动方式
Node.js 程序 → 读 JS → JIT 编译
操作系统直接载入
启动延迟
有感(每次冷启动)
明显缩短
本机 Node.js
必须安装
不再需要
Node.js 版本冲突
时有发生
不存在
安装失败风险
较高(环境依赖复杂)
降低

对于一天敲几十次 claude 的重度用户,启动延迟的消失是能直接感受到的改善。

用户需要做什么?

什么都不用做。原有指令照用:

npm install -g @anthropic-ai/claude-code

npm 在后台自动挑选对应平台的原生二进制,用户无需感知任何变化。

如果想继续用 JS 版本

特殊需求(如需要在没有预编译二进制的平台上运行)可以固定版本号:

npm install -g @anthropic-ai/[email protected]

更大的趋势:CLI 工具走向原生化

这不是 Anthropic 的创举,而是工具链演化的普遍方向。Rust 生态的 CLI 工具(ripgrep、fd)、Go 工具(gh、terraform)长期以来就直接分发原生二进制,避免对外部运行时的依赖。

JavaScript 生态过去习惯走 Node.js 运行时,但随着工具复杂度提升、使用频率增加,Node.js 的启动成本从“可以接受”逐渐变成“明显障碍”。Anthropic 这次的选择,是将 JS 引擎直接打包进去,让用户端不再感知到执行时的存在。

对于每天依赖 Claude Code 工作的开发者来说,这个小版本背后隐藏的,是一次真正的体验改善。

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
请输入评论内容
请输入评论内容
暂无评论