Skip to content

包概述

此 monorepo 包含两个主要包:@google/gemini-cli@google/gemini-cli-core

@google/gemini-cli

这是 Gemini CLI 的主包。它负责用户界面、命令解析以及所有其他面向用户的功能。

当此包发布时,它会被打包成一个单一的可执行文件。此捆绑包包含该包的所有依赖项,包括 @google/gemini-cli-core。这意味着,无论用户使用 npm install -g @google/gemini-cli 安装该包,还是直接使用 npx @google/gemini-cli 运行它,他们都在使用这个单一的、独立的、自包含的可执行文件。

@google/gemini-cli-core

此包包含与 Gemini API 交互的核心逻辑。它负责进行 API 请求、处理身份验证以及管理本地缓存。

此包未被打包。当它发布时,它会作为一个标准的 Node.js 包发布,并包含其自身的依赖项。如果需要,这允许它在其他项目中作为独立包使用。dist 文件夹中所有转译后的 JavaScript 代码都包含在此包中。

NPM Workspaces

本项目使用 NPM Workspaces 来管理此 monorepo 中的包。通过允许我们在项目根目录管理依赖项和运行跨多个包的脚本,这简化了开发。

工作原理

根目录的 package.json 文件定义了此项目的 workspaces:

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

这告诉 NPM,packages 目录内的任何文件夹都是一个独立的包,应作为 workspace 的一部分进行管理。

Workspaces 的优势

  • 简化的依赖管理:从项目根目录运行 npm install 将安装 workspace 中所有包的依赖项,并将它们链接在一起。这意味着您无需在每个包的目录中运行 npm install
  • 自动链接:workspace 中的包可以相互依赖。运行 npm install 时,NPM 会在包之间自动创建符号链接。这意味着当您在一个包中进行更改时,这些更改会立即提供给依赖于它的其他包。
  • 简化的脚本执行:您可以使用 --workspace 标志从项目根目录运行任何包中的脚本。例如,要运行 cli 包中的 build 脚本,您可以运行 npm run build --workspace @google/gemini-cli

基于 MIT 许可证发布