Skip to content
FunCoding

Search

Search docs, Skills and MCP

源码构建与 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。实际隔离配置见沙箱与排障。

发布需要另外完成版本、测试和归档验证,详见发布工作流。