arch-tsdown-monorepo
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesearch-tsdown-monorepo is a pnpm monorepo starter for TypeScript libraries (based on hairyf/starter-monorepo). Each package uses tsdown for building. It provides shared tooling (ESLint, Vitest, TypeScript), pnpm catalogs for versions, workspace dependencies, and optional npm Trusted Publisher for CI-based releases.
The skill is based on hairyf/starter-monorepo, generated at 2026-02-02.
Recommended practices:
- Use pnpm catalogs for devDependency versions; reference with ,
catalog:cli, etc.catalog:testing - Use for inter-package dependencies; publish once manually, then use npm Trusted Publisher for CI releases.
workspace:* - Run build/typecheck/test from root with and a single Vitest config with projects (root + packages/*).
pnpm -r run ...
arch-tsdown-monorepo 是一个适用于TypeScript库的pnpm monorepo启动模板(基于hairyf/starter-monorepo)。每个包使用tsdown进行构建。它提供共享工具链(ESLint、Vitest、TypeScript)、用于版本管理的pnpm catalogs、工作区依赖,以及可选的npm Trusted Publisher用于基于CI的发布。
本模板基于hairyf/starter-monorepo生成,生成时间为2026-02-02。
推荐实践:
- 使用pnpm catalogs管理devDependency版本;通过、
catalog:cli等方式引用。catalog:testing - 包间依赖使用;先手动发布一次,之后使用npm Trusted Publisher进行CI自动发布。
workspace:* - 在根目录通过执行构建/类型检查/测试命令,使用单个包含根项目和所有packages/*的Vitest配置文件。
pnpm -r run ...
Core References
核心参考
| Topic | Description | Reference |
|---|---|---|
| Overview | Monorepo purpose, structure, when to use | core-overview |
| Workspace | pnpm workspace, catalogs, workspace:* deps | core-workspace |
| Packages | Package layout, exports, inter-package deps | core-packages |
| Package Exports | Dual exports (dev vs publish), main/module/types, files, sideEffects | core-package-exports |
| tsdown (per package) | entry, dts, exports, publint | core-tsdown-per-package |
| Scripts | Root and package scripts — build, dev, typecheck, test, release | core-scripts |
| Testing | Vitest projects — root + packages/* | core-testing |
| Tooling | ESLint, TypeScript, .gitignore, .vscode | core-tooling |
| CI | GitHub Actions — lint, typecheck, test matrix | core-ci |
| Release | npm Trusted Publisher, bumpp, release workflow | core-release |
| Git Hooks | simple-git-hooks, lint-staged, pre-commit | core-git-hooks |
| 主题 | 描述 | 参考链接 |
|---|---|---|
| 概述 | Monorepo的用途、结构、适用场景 | core-overview |
| 工作区 | pnpm工作区、catalogs、workspace:*依赖 | core-workspace |
| 包 | 包布局、导出配置、包间依赖 | core-packages |
| 包导出 | 双模式导出(开发 vs 发布)、main/module/types字段、文件配置、sideEffects | core-package-exports |
| tsdown(每个包) | 入口文件、dts、导出配置、publint | core-tsdown-per-package |
| 脚本 | 根目录和包级脚本 —— 构建、开发、类型检查、测试、发布 | core-scripts |
| 测试 | Vitest项目配置 —— 根项目 + packages/* | core-testing |
| 工具链 | ESLint、TypeScript、.gitignore、.vscode配置 | core-tooling |
| CI | GitHub Actions —— 代码检查、类型检查、测试矩阵 | core-ci |
| 发布 | npm Trusted Publisher、bumpp、发布工作流 | core-release |
| Git钩子 | simple-git-hooks、lint-staged、pre-commit | core-git-hooks |
Features
功能特性
| Topic | Description | Reference |
|---|---|---|
| Exports Snapshot | Per-package export snapshot tests (vitest-package-exports, runIf(IS_READY)) | features-exports-snapshot |
| Add Package | Step-by-step adding a new workspace package | features-add-package |
| 主题 | 描述 | 参考链接 |
|---|---|---|
| 导出快照 | 每个包的导出快照测试(vitest-package-exports、runIf(IS_READY)) | features-exports-snapshot |
| 添加包 | 逐步添加新工作区包的指南 | features-add-package |
Best Practices
最佳实践
| Topic | Description | Reference |
|---|---|---|
| Monorepo | Catalogs, workspace deps, release, build order | best-practices-monorepo |
| 主题 | 描述 | 参考链接 |
|---|---|---|
| Monorepo | Catalogs、工作区依赖、发布、构建顺序 | best-practices-monorepo |