monorepo填坑笔记
小目标
- monorepo 是个啥?
- monorepo 怎么用?
js技术栈
- pnpm 是个啥?
- pnpm 怎么用?
- monorepo + pnpm workspace 迁移现有项目
- CI/CD
- changesets 工作流管理
go 技术栈
- go 解决方案
Q: Monorepo是个啥?
A:
monorepo 是仓库管理的一种策略,mono的意思是“单个”,repo当然就是表示仓库啦;连起来就是所有项目放在一个仓库里。
我们用的更多的策略是polyrepo(也叫multirepo),就是多仓库;指每一个项目一个仓库;每个仓库分开管理,分开维护。
听起来第一种会很反直觉,对吧。但想象一下 —— 你有三个项目,三个项目都依赖一样的lint、一样的依赖、一样的Dockerfile等等等等… 你每次更新版本,你都需要对重复的事情做3遍。然后随着时间的推移,这个3成长成了n。