esbuild + TypeScript TypeScript + ESM (ES2022)+ export maps+ bun.sh+ thi.ng/monopub+ docs.thi.ng

217个TypeScript库的构建、测试、文档与发布一体化流水线

esbuild负责高速构建,bun负责测试,monopub统一发布217个独立版本库,docs.thi.ng自动生成文档

✓ 构建测试发布全自动✓ 各包独立版本管理 ✕ 依赖自研发布工具链

方案简介

thi.ng/umbrella 是一个大型 TypeScript monorepo,包含 217 个独立库/包/工具和约 185 个示例项目,总计约 25 万行代码、约 4350 个源文件。要维护如此规模的仓库,必须有一套可靠的工程化流水线。该方案使用 esbuild 进行构建、bun 进行测试、thi.ng/monopub 发布工具链统一发版,并通过 docs.thi.ng 自动生成在线文档。所有包以 ESM 模块(ES2022 语法)分发,附带 export maps、TypeScript 类型定义和变更日志。这套组合适合维护多包 monorepo 的团队,尤其是各包需要独立版本、独立发布的场景。

亮点与能力

  • 217 个包独立版本管理,互不绑定
  • 构建由 esbuild 完成,速度快
  • 测试由 bun.sh 运行
  • 发布由 thi.ng/monopub 工具链统一执行
  • 以 ESM 模块(ES2022 语法)分发,带 export maps
  • 每个包附带 TypeScript 类型定义与变更日志
  • 在线文档在 docs.thi.ng 自动生成

组成与分工

  • esbuild:负责所有包的构建
  • bun.sh:负责测试运行
  • thi.ng/monopub:统一发布工具链,管理多包发版
  • TypeScript:全部 217 个库的实现语言
  • docs.thi.ng:自动生成的在线 API 文档站点

前置要求

  • TypeScript 开发环境(全部包以 ES2022 语法的 ESM 模块分发)
  • esbuild 构建工具
  • bun.sh 运行时用于测试
  • thi.ng/monopub 发布工具链

材料未给出具体安装命令,以下为材料中列出的工具官方地址:

  • esbuild: https://esbuild.github.io/
  • bun: https://bun.sh
  • monopub: https://github.com/thi-ng/monopub
  • API 文档: https://docs.thi.ng

使用与配置要点

  • 每个包在各自 readme 中列出全部依赖,多数包只有零个或仅 @thi.ng 内部运行时依赖
  • 公共接口、枚举与类型统一声明在各包的 api.ts 文件中
  • 各包对其公共 API 提供完整 re-export,方便整库导入
  • 构建产物高度模块化,常常每个文件只含单个函数/类,利于按需导入和 tree shaking
  • 全部包采用 Apache Software License 2.0 许可

注意事项与常见问题

  • 极少数包存在 @thi.ng 之外的其他运行时依赖,使用前应查阅各包 readme 中的依赖清单
  • 该项目已迁移至 Codeberg,原 GitHub 仓库仅为只读镜像,将于当年晚些时候删除
  • 仓库明确声明其不是框架,所有包都可以单独使用,不要期望开箱即用的一体化方案

优缺点

  • ✓ 构建测试发布全自动
  • ✓ 各包独立版本管理
  • ✕ 依赖自研发布工具链

出处

本方案挖掘自开源项目 thi-ng/umbrella,方案内容与实施命令均来自其 README 原文。

方案出处
thi-ng/umbrella:⛱ Broadly scoped ecosystem & mono-repository of 215 TypeScript projects (and ~1
3827 star ⛱ Broadly scoped ecosystem & mono-repository of 215 TypeScript projects (and ~185 examples) for general purpose, functional, data driven development

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。