AI 程式設計教學中文版
官方教學中文版故障排查與參考

NPM package

Gemini CLI NPM package 結構:@google/gemini-cli、@google/gemini-cli-core、workspace 與釋出包邊界。

📖 本篇術語速查表
英文 / 縮寫中文一句話解釋
NPM packageGemini CLI 的 npm 分發包。
版本鎖定pin鎖定包版本避免意外更新。
全域 vs 本地scope裝全域還是專案本地。

不想讀完?把下面這段提示詞丟給 AI 幫你跑完——幫你管好 Gemini CLI 的 npm 包(安裝、版本、全域/本地)。

你是 Gemini CLI npm 包管理顧問。

【角色】
Gemini CLI npm 包管理顧問,按分層定位、一次只改一個變數的原則幫我找根因,每條結論落到能照做的步驟。

【輸入】
- 我的 node / npm 環境:___
- 想全域裝還是專案本地:___
- 是否需要鎖版本:___
- 遇到的包問題:___
- 經驗水平:___

【工作流程】
1. 說明全域 vs 本地的取捨
2. 給安裝和版本鎖定方式
3. 處理常見包問題(許可權 / 衝突)
4. 給更新策略
5. 給驗證

【輸出規範】
▌一、全域 vs 本地
▌二、安裝 + 鎖版本
▌三、常見包問題
▌四、更新策略 + 驗證

【硬約束】
- 按場景選全域 / 本地
- 生產環境鎖版本
- 全域安裝注意許可權
- 不要替我臆測原因或編造不存在的設定,資訊不全先問清
- 不確定的機制或報錯一律以官方文件為準,禁止照搬過時寫法

Gemini CLI 儲存庫是 monorepo。普通使用者只需要知道怎麼安裝;貢獻者和排障者需要知道包邊界。

普通使用者安裝的是 CLI 入口,不需要直接依賴 core。只有原始碼貢獻、stack trace 排查或 package 釋出驗證時,才需要理解 workspace。

兩個核心包

@google/gemini-cli 是使用者入口,負責終端 UI、命令解析和執行檔;@google/gemini-cli-core 負責 Gemini API 請求、認證、本地快取和核心邏輯。

職責面向誰
@google/gemini-cli終端 UI、命令解析、可執行入口、使用者側功能普通使用者、教學讀者、CI
@google/gemini-cli-coreAPI 請求、認證、本地快取、核心邏輯官方開發者、排障者、需要複用 core 的開發者

使用者安裝的是誰

普通使用者常見方式是 npm install -g @google/gemini-clinpx @google/gemini-cli

使用的是 @google/gemini-cli 這個自包含可執行入口。

為什麼要懂 core

當你遇到認證、快取、API 請求、模型呼叫、token 統計這類問題時,很多邏輯其實在 @google/gemini-cli-core

@google/gemini-cli-core 不是普通使用者日常啟動入口。它更像可複用核心庫,包含與 Gemini API 互動、認證、本地快取等邏輯。排查 issue 時,看到 stack trace 進入 core,不代表安裝了兩個 CLI。

flowchart LR
    User["user runs gemini"] --> Cli["@google/gemini-cli"]
    Cli --> Bundle["bundled executable"]
    Bundle --> Core["@google/gemini-cli-core"]
    Core --> API["Gemini API / auth / cache"]
    Dev["source developer"] --> Workspace["NPM workspaces"]
    Workspace --> Cli
    Workspace --> Core

    style Cli fill:#dbeafe,stroke:#3b82f6
    style Core fill:#dcfce7,stroke:#22c55e
    style Workspace fill:#fef3c7,stroke:#f59e0b

Workspace 結構

官方儲存庫使用 NPM Workspaces:

package.json 中的 workspaces 指向 packages/*

本地開發時,在根目錄安裝依賴即可讓 workspace 內包互相連結。

示例:

{
  "workspaces": ["packages/*"]
}

在 monorepo 根目錄執行 npm install 會安裝所有 workspace 依賴並自動連結內部包。要只跑某個包的指令碼,可以用 NPM workspace 引數,例如 npm run build --workspace @google/gemini-cli

讀 stack trace

trace 落點可能含義下一步
packages/cli終端 UI、命令解析、引數、互動流程查 CLI command、flags、TUI 狀態
packages/core認證、API、cache、tool scheduler查認證方式、模型呼叫、快取和工具執行
node_modules依賴或環境問題查 lockfile、Node 版本、包管理器
bundle / executable釋出包或 npx 入口問題查 release notes、npm tag、安裝來源

排錯判斷

  • gemini 命令找不到:查全域 npm bin、PATH、Homebrew/MacPorts 安裝路徑。
  • npx 總是跑舊版本:清 _npx cache。
  • 原始碼開發改動沒生效:確認 workspace link 和 build 產物。
  • API、認證、cache 行為異常:優先看 core 相關 issue 和 logs。
  • 使用者側教學失敗:先復現全域安裝或 npx,不要直接從原始碼構建。

回到教學

官方教學中文版到這裡結束。下一步建議讀“從原理到實戰”,把這些官方能力串成真實專案工作流。

寫教學時的邊界:

  • 安裝頁只講普通使用者入口,避免把 monorepo build 放進新手流程。
  • 本地開發頁講 workspace、preflight、telemetry 和貢獻流程。
  • 故障排查頁只在需要判斷原始碼問題時引入 package 邊界。
  • 自動化頁預設呼叫釋出後的 CLI,而不是依賴本地原始碼路徑。

驗收方式

普通使用者用 gemini --version 驗證入口;原始碼貢獻者用根目錄 build/test/preflight 驗證 workspace。寫教學時,安裝頁只講 @google/gemini-cli,原始碼排障頁再解釋 core 和 workspace,避免新手混淆。

下一步

官方來源

本頁目錄