Monorepo 升级公共库后 如何保证使用它的子项目能够兼容

情景举例:

  1. 在monorepo中我有两个子项目

    • packages/common
    • packages/web-project
  2. web-project 使用了 common@1.0.0 的公共库
  3. 后来升级common到@2.0.0
  4. 由于改动太大,于是web-project出现了不兼容的情况

我该如何处理?

正常来讲应该手动去fix这些兼容错误,毕竟monorepo提供的优势之一就是在一个项目中维护多个互相shared的项目并保证可测试性,但是如果我有50个子项目都引用了common,那我每次大改动岂不是都要去手动 兼容50个子项目?

于是我开始怀疑我这种需求到底适不适合monorepo,然后我觉得正解应该是每次我升级common包不会影响web-project,除非我手动升级web-project到2.0.0

lerna中有一个independent mode的模式,就是独立版本的,我还没有尝试过,请问是解决这个需求的问题吗?那这样的话是不是需要每次都把common库发布到npm或者私有registry?或者有其他更好更主流的解决方案感谢回答。

阅读 868
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题