SDK Monorepo
一个 pnpm/Turborepo monorepo,装着 @guohanmin 这个 scope 下的所有包。logger、storage、http、encryptor、utils 对外发布;biome-config、ts-config、tsdown-config、vitest-config、commitlint-config 只在仓内共享,被所有包和应用依赖。
10 个包 · lefthook pre-commit 拦截 · 源码只写英文
前端工程师
维护 @guohanmin 包生态——一个 pnpm/Turborepo monorepo、它所依赖的私有 npm 源,以及搭在两者之上的内部工具。
pnpm add @guohanmin/storage项目
一个 pnpm/Turborepo monorepo,装着 @guohanmin 这个 scope 下的所有包。logger、storage、http、encryptor、utils 对外发布;biome-config、ts-config、tsdown-config、vitest-config、commitlint-config 只在仓内共享,被所有包和应用依赖。
10 个包 · lefthook pre-commit 拦截 · 源码只写英文
跑在 Cloudflare Workers + D1 + R2 上的私有 npm 源,专门服务 @guohanmin 这个 scope。monorepo 里每一次 pnpm publish-packages,都先落到这里,再被任何 package.json 引用到。
撑起整套生态的安装环节
把 Vercel 的 Geist 设计语言拆解后搬进 Tailwind v4:ink/canvas 灰阶、双套圆角语义、绑在 data-theme 上的深色模式。现在是三个内部应用共用的一套 token 层,这个站点也在用。
site / npmjs / typedoc 共用
实验室
DESIGN-vercel.md 定义了两套圆角:营销 CTA 用 pill,导航和应用控件用 6px 方角。挑一个按钮样式和形状试试。
选择通过 @guohanmin/storage 持久化——刷新页面也不会丢。
动态
直接取自这个 monorepo 自己的 git 历史——不用另外维护一个博客。
关于
这个 monorepo 把前端基础设施当产品来做:每个包用 Changesets 走版本管理,每次提交都过 Biome 和 lefthook 的 pre-commit 检查,每个应用用同一种方式部署到 Cloudflare Pages。