文章 · 工程化
单仓多包的工具链怎么收敛
单仓多包最容易失控的地方不是代码,是工具链。每个包各配一套 lint、各写一套构建、各用一版 TypeScript,半年之后没人敢动根目录。
配置上移
所有包共用的规则提到根目录,包内只保留差异部分。规则只有一份,改一次全仓生效,这是收敛的第一步。
依赖版本对齐
同一个库出现多个版本,是单仓里最隐蔽的坑:产物重复、类型冲突、调试时看的是另一份实现。用统一的版本约束把它们锁到一处。
任务编排交给构建系统
哪个包先编、哪些能并行、谁该缓存,这些不该靠人记。让构建系统读依赖图来排,人只负责声明任务本身。
工具链收敛的目标不是统一,是让新人不需要问「这个包用哪套规则」。
评论15
登录后参与评论,你的发言会署上自己的名字。
周迟作者@zhouchi·2026-08-15
自己先补一句 —— 文中那几处踩坑的细节,备注里写得更全,需要的话我再展开。
唐棠@tangtang·2026-08-17
产物裁剪这条被低估了,sourcemap 和语言包占的空间比想象中大。
孟凡@mengfan·2026-08-18
构建脚本重写那段看着很有共鸣,最花时间的果然还是新旧产物对照。
邓可@dengke·2026-08-19
把流水线耗时先打出来这一步太重要了,不然优化全靠猜。
罗叙@luoxu·2026-08-20
同意,先有数据再谈优化,不然改了半天不知道有没有用。
罗叙@luoxu·2026-08-20
并行分片我们试过,收益确实明显,但要注意任务之间的隐式依赖。
白露@bailu·2026-08-21
同感,我们是先画了一遍依赖图才敢拆的。
江辰@jiangchen·2026-08-21
缓存那部分能不能再展开讲讲?我们这边命中率一直上不去。