文章 · 工程化

单仓多包的工具链怎么收敛

单仓多包最容易失控的地方不是代码,是工具链。每个包各配一套 lint、各写一套构建、各用一版 TypeScript,半年之后没人敢动根目录。

配置上移

所有包共用的规则提到根目录,包内只保留差异部分。规则只有一份,改一次全仓生效,这是收敛的第一步。

依赖版本对齐

同一个库出现多个版本,是单仓里最隐蔽的坑:产物重复、类型冲突、调试时看的是另一份实现。用统一的版本约束把它们锁到一处。

任务编排交给构建系统

哪个包先编、哪些能并行、谁该缓存,这些不该靠人记。让构建系统读依赖图来排,人只负责声明任务本身。

工具链收敛的目标不是统一,是让新人不需要问「这个包用哪套规则」。

评论15

访客

登录后参与评论,你的发言会署上自己的名字。

  • 周迟

    周迟作者@zhouchi2026-08-15

    自己先补一句 —— 文中那几处踩坑的细节,备注里写得更全,需要的话我再展开。

  • 唐棠

    唐棠@tangtang2026-08-17

    产物裁剪这条被低估了,sourcemap 和语言包占的空间比想象中大。

  • 孟凡

    孟凡@mengfan2026-08-18

    构建脚本重写那段看着很有共鸣,最花时间的果然还是新旧产物对照。

  • 邓可

    邓可@dengke2026-08-19

    把流水线耗时先打出来这一步太重要了,不然优化全靠猜。

  • 罗叙

    罗叙@luoxu2026-08-20

    同意,先有数据再谈优化,不然改了半天不知道有没有用。

  • 罗叙

    罗叙@luoxu2026-08-20

    并行分片我们试过,收益确实明显,但要注意任务之间的隐式依赖。

  • 白露

    白露@bailu2026-08-21

    同感,我们是先画了一遍依赖图才敢拆的。

  • 江辰

    江辰@jiangchen2026-08-21

    缓存那部分能不能再展开讲讲?我们这边命中率一直上不去。