Anthropic 於 v2.1.113 升級 Claude Code 分發方式:npm 包改為各平台預先編譯好的原生二進制執行檔,而非 JavaScript 程式碼。此版本將 npm 包從 JavaScript 程式碼改為各平台預編譯的原生二進制執行檔,消除了每次啟動都要等待 Node.js 進程與 JIT 預熱的隱性成本。
(前情提要:Claude Opus 4.7 深度介紹》coding 能力升級、1M 不加價,實測缺點在哪?)
(背景補充:Anthropic 推出視覺設計神器「Claude Design」!一句話秒做簡報、企劃書、App 原型)
每次敲下 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 版本
特殊需求(如需要在未有預編譯二進位制的平台上執行)可以 pin 版本號:
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 工作的開發者來說,這個小版本號背後藏的,是一次真正的體驗改善。
📍相關報導📍
Claude Opus 4.7 深度介紹》coding 能力升級、1M 不加價,實測缺點在哪?
Anthropic 推出視覺設計神器「Claude Design」!一句話秒做簡報、企劃書、App 原型

