morrain/lerna-learning

对于多人协作而言,monorepo 还是有很多问题

Opened this issue · 1 comments

对于单个项目的开发,monorepo 可以轻松应对,而对于团队人数较多,会在同一个 monorepo 项目中用不同的分支进行开发并且发布包版本的场景而言,基本是一场灾难。

  • 初始化新包的时候,版本号应该如何选择。
  • 对于开发分支,包版本的命名规则应该如何,特别是多个开发分支存在,需要发不同分支的包的情况。
  • 在不同的开发分支间进行切换,每次需要重新执行 lerna bootstrap 以完成包之间的链接(因为不同分支的依赖情况及子包数量不同)
  • 同上,在切换到新的开发分支时,子包的编译顺序需要梳理,比如 A 包依赖 B 包,B 是新添加的,全局 build 的情况下,需要先指定编译 B 包输出 lib 目录,A 包编译才能找到依赖并通过编译。
  • 如果使用别名,各个子包之间如何保证别名的引用是当前包范围
  • 新增加一个包,要先发布初始版本至仓库,才能在其他子包找到该包的依赖

诸如此上种种,来源于实际项目实践,如果有好的方案,还望解答。:grinning:

对于单个项目的开发,monorepo 可以轻松应对,而对于团队人数较多,会在同一个 monorepo 项目中用不同的分支进行开发并且发布包版本的场景而言,基本是一场灾难。

  • 初始化新包的时候,版本号应该如何选择。
  • 对于开发分支,包版本的命名规则应该如何,特别是多个开发分支存在,需要发不同分支的包的情况。
  • 在不同的开发分支间进行切换,每次需要重新执行 lerna bootstrap 以完成包之间的链接(因为不同分支的依赖情况及子包数量不同)
  • 同上,在切换到新的开发分支时,子包的编译顺序需要梳理,比如 A 包依赖 B 包,B 是新添加的,全局 build 的情况下,需要先指定编译 B 包输出 lib 目录,A 包编译才能找到依赖并通过编译。
  • 如果使用别名,各个子包之间如何保证别名的引用是当前包范围
  • 新增加一个包,要先发布初始版本至仓库,才能在其他子包找到该包的依赖

诸如此上种种,来源于实际项目实践,如果有好的方案,还望解答。😀

老哥有没有找到上述问题的解决方案啊😄