研发协作
搭建/维护 TypeScript pnpm…
适用于脚手架或维护多包 TypeScript/ESM 仓库,使用 pnpm workspace、tsdown、共享工具链和 npm Trusted Publisher 发布。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
搭建/维护 TypeScript pnp特定
解决思路
- 使用 pnpm catalogs 管理 devDependency 版本;通过 `catalog:cli`、`catalog:testing` 等引用。
- 使用 `workspace:*` 引用包间依赖;先手动发布一次,然后在 CI 发布中使用 npm Trusted Publisher。
- 从根目录运行 build/typecheck/test,使用 `pnpm -r run ...` 和单个 Vitest 配置,配置 projects(根 + packages/*)。
- 使用 pnpm workspace 组织 monorepo,并管理 catalogs 与 `workspace:*` 依赖。
- 按包组织布局,为每个包配置 exports 和包间依赖。
- 为包配置双导出(开发与发布),设置 main/module/types,声明 files 和 sideEffects。
- 每个包使用 tsdown 构建,配置 entry、dts、exports,并运行 publint。
- 在根和包中定义脚本:build、dev、typecheck、test、release。
- 使用 Vitest projects,配置根 + packages/*。
- 配置共享工具:ESLint、TypeScript、.gitignore、.vscode。
- 用 GitHub Actions 做 CI:lint、typecheck、test matrix。
- 用 npm Trusted Publisher、bumpp、release workflow 发布。
- 用 simple-git-hooks、lint-staged、pre-commit 配置 Git hooks。
- 为每个包使用 vitest-package-exports 做导出快照测试,并用 runIf(IS_READY) 控制。
- 添加新 workspace 包时,遵循 features-add-package 中的步骤逐项添加。
- Monorepo 最佳实践:管理 catalogs、workspace deps、release、build order。
适用边界 · 注意事项
- 单包项目或不需要多包 workspace 的场景。
- 不使用 pnpm、tsdown 或 TypeScript/ESM 的项目。
- 无法使用 npm Trusted Publisher / GitHub Actions 做 CI 发布的场景。