源码构建与 npm 包
区分 workspace 构建、CLI bundle、发布产物和独立安装包。
This page has not been translated into English yet. The original Chinese version is shown below.
源码开发、npm 分发和独立归档使用不同产物。排查安装后缺文件或本地测试通过但发布失败时,先确认正在验证哪一种产物。
安装仓库依赖
当前仓库要求 Node.js 22+,packageManager 固定 pnpm 11.24.0。克隆上游后按锁文件安装:
corepack pnpm install --frozen-lockfile
npm run build这是 Qwen Code 上游仓库的命令。贡献页仍出现 npm install,但当前根 package.json 和打包指南使用 pnpm 锁文件流程;不要把旧说明当成替换锁文件的要求。
根 workspaces 除主要 packages 外,还显式纳入渠道插件和部分 integrations。新增包时检查实际列表,不假定只要放入任意嵌套目录就会自动参与构建。
选择构建任务
| 任务 | 当前用途 |
|---|---|
| npm run build | 调用仓库构建脚本,准备通常的开发产物 |
| npm run build:packages | 通过 corepack pnpm 递归构建 workspace 包 |
| npm run bundle | 先生成必要内容,再运行 esbuild 和 bundle 资源复制脚本 |
| npm run build:all | 顺序构建普通产物、sandbox 和 VS Code 扩展 |
| npm start | 从仓库启动 CLI |
build:all 包含容器相关构建,需要相应 provider;普通源码编辑不必因此启动容器。具体测试选择见集成测试。
npm 分发包含什么
CLI 包通过 bundle 汇集运行需要的代码,包括 core 逻辑,并准备 README、LICENSE、locales、vendor 等资源。core 的独立包则有自己的编译产物和依赖关系。不能把 CLI bundle 的自包含方式推广到全部 workspace 包。
原生终端能力还涉及按平台提供的可选依赖。一个平台的本地 bundle 能启动,不足以证明其他平台的发布包已包含正确的可选组件。
检查打包问题时,分别核对源码、编译后的 dist、打包暂存目录和最终归档内容。仓库存在某文件,不代表 npm 包或独立归档自动包含它。
独立归档与容器
独立归档提供带运行时的分发方式;普通 classic Node 产物与可选的 Bun/OpenTUI preview 产物有不同发布路径。preview 归档使用 -opentui-preview 后缀,并由启动器选择对应 renderer。
sandbox 容器是工具执行环境;它与 CLI 的独立安装包不是同一种分发物,也不表示所有安装默认启用 sandbox。实际隔离配置见沙箱与排障。
发布需要另外完成版本、测试和归档验证,详见发布工作流。