用途
该技能是用于从 zenobi-us/bun-module 模板仓库创建新 Bun 包的专业指南,自动化完成仓库创建、克隆与初始化配置,主要面向创建新的 Bun TypeScript 包或库、启动新 Bun 模块项目、需要在多个项目间保持一致的包结构,以及希望通过 Bun 模板自动完成 GitHub 仓库搭建的场景。非 Bun 项目、已有仓库(该模板面向新项目),以及不需要 TypeScript 或测试基础设施的项目不适用。
主要能力
模板仓库 zenobi-us/bun-module 提供以下内容:
- TypeScript 配置:预配置的 tsconfig.json
- Mise 集成:包含 build、test、format 任务的任务运行器
- 测试:Vitest 测试基础设施
- 包配置:带默认值的起始 package.json
- 构建工具:使用 Bun 打包器进行打包
- 发布自动化:用于自动化发布的 Release Please 配置
- 文档:README 模板、AGENTS.md、RELEASE.md
- 代码检查:已配置 ESLint 与 Prettier
- GitHub Actions:预配置的 CI/CD 工作流
使用方式
前置检查:确认 GitHub CLI 已安装并认证(gh auth status),Bun 已安装(bun --version,setup.sh 需要)。
步骤 1 收集信息:向用户询问 Owner(GitHub 用户名或组织)、仓库名、可见性(公开或私有,默认公开)。
步骤 2 从模板创建仓库:
公开仓库:
gh repo create OWNER/REPO-NAME \
--template zenobi-us/bun-module \
--public \
--clone
私有仓库:
gh repo create OWNER/REPO-NAME \
--template zenobi-us/bun-module \
--private \
--clone
--clone 标志会在创建后自动克隆。
步骤 3 进入仓库目录:cd REPO-NAME
步骤 4 运行 setup 脚本:bash setup.sh。脚本会应用模板文件到当前目录、用默认值替换模板变量、移除旧 Git 历史与模板文件、初始化全新 Git 仓库、创建初始提交、尝试推送到远程(若仓库刚创建可能失败)。脚本以非交互方式运行并使用以下默认值:包名 my-bun-package、描述 A Bun package、作者 Your Name you@example.com、仓库 URL 从 git remote 检测(通常正确)。
步骤 5 手动更新 package.json:需修改 name(从 my-bun-package 改为实际名称)、description、author.name、author.email。
步骤 6 信任 mise 配置:mise trust(运行 mise 任务前必需)。
步骤 7 安装依赖并构建:
bun install
mise run build
ls -la dist/
步骤 8 提交更新:
git add package.json
git commit -m "chore: update package metadata"
git push -u origin main
命令选项
gh repo create [<owner>/]<name> [flags] 的关键标志:--template OWNER/REPO(使用仓库作为模板)、--public、--private、--clone、--description DESC、--homepage URL。示例:
gh repo create zenobi-us/new-module \
--template zenobi-us/bun-module \
--public \
--clone \
--description "My awesome Bun module" \
--homepage "https://example.com"
组织仓库示例:
gh repo create my-org/new-module \
--template zenobi-us/bun-module \
--public \
--clone
故障排查
- 模板仓库未标记为模板(提示 is not a template repository):执行 gh repo edit zenobi-us/bun-module --template,并可用 gh repo view zenobi-us/bun-module --json isTemplate 验证。
- GitHub CLI 未认证:gh auth login,再用 gh auth status 验证。
- 模板未找到:确认模板仓库存在且可访问,检查 owner/repo 拼写,确保模板仓库为公开或你有访问权限。
- setup 脚本失败:ls -la setup.sh 确认文件存在;必要时 chmod +x setup.sh;用 bash setup.sh 显式运行;用 bun --version 确认 Bun 已安装。
- 需要 mise trust(提示 Config files ... are not trusted):执行 mise trust,随后运行 mise 任务。
- 克隆目录已存在:选择其他名称或删除已有目录,或使用 --clone 标志而不指定目录。
- 构建失败:先 bun install,若未完成则 mise trust,再重试 mise run build,可用 mise run build --verbose 查看具体错误。
后续步骤
完成 setup 与 package.json 更新后:验证 package.json 字段(cat package.json | jq '.name, .description, .author');bun install;mise trust 与 mise run build;验证构建输出(ls -la dist/,应看到 index.js、index.d.ts);运行测试(mise run test,若存在);提交定制(git add package.json、git commit、git push origin main);更新 README 替换模板内容;更新 AGENTS.md 说明 AI 代理如何与包交互;审查并定制 .github/workflows/ 中的 GitHub Actions 工作流;在 src/ 中开始实现包。
与其他工具集成
- 与 mise:mise use bun@latest 固定 Bun 版本;在 mise.toml 中添加任务,如 setup = "bash setup.sh"、test = "bun test"、build = "bun run build"。
- 与 Git 工作流:git checkout -b feat/initial-implementation 创建特性分支;bun add -D husky lint-staged 设置 pre-commit 钩子。
- 包管理器兼容:Bun(主要)、npm(兼容)、pnpm(兼容,作为回退)。
最佳实践
仅需一次标记模板仓库;使用描述性的仓库名;包名使用 @scope/name 明确命名空间归属;运行 setup.sh 后立即更新 package.json;构建前先 mise trust;将元数据更新单独提交;setup 后立即测试确认 mise run build 通过;尽早用真实内容替换文档占位符;有意识地配置可见性(开源用公开、内部用私有);审查生成的文件(AGENTS.md、README.md、工作流)。
已知限制
- 非交互式 setup:setup.sh 不提示输入,使用默认值,必须在之后手动更新 package.json。
- 需要手动编辑 package.json:运行 setup.sh 后必须编辑 name、description、author 字段。
- 无验证:脚本不会验证你对 package.json 的手动编辑。
- 需要 mise trust:运行任务前必须显式信任 mise 配置。