monorepo应该在什么情况下使用lerna或者yarn workspace?

What situations should should I use lerna or yarn workspace for monorepo?

问题 1:我可以在我的情况下使用 monorepo 吗?

我现在有几个在单独的 repos 中开发的 react 项目,它们彼此不共享代码,但它们都共享一个 Components lib,这也是一个独立的 repo,我认为太多的分离会导致无法追踪,我想知道我的情况是否适合使用 monorepo。

问题 2:如果我使用 monorepo,我如何 link 不同版本的不同包。

比如我有packages/libpackages/bpackages/cb 使用 lib@1.0.0c 使用 lib@2.0.0

如何在不发布到 npm 的情况下管理它。

问题三:回到标题,你会在什么情况下选择使用monorepo?

回答 1

如果您的库已经有一个单独的存储库,那么它已经配置好并且适合您。我认为您不需要 monorepo,而且项目没有关系(lib 除外),不是吗?你认为什么样的无法追踪的事情让你感到厌烦?也许这样的问题更容易解决,monorepo 也会给你带来新的问题。

回答2

我认为你做不到,不是开箱即用的

回答 3

您会选择 monorepo 来构建一个存储库,其中包含许多具有依赖项的项目,这意味着在构建期间控制每个包的版本可能更容易。当我确实需要在所有包中执行测试以使某些包无效时。当然,这一切都是使用 multirepos 实现的,但它都在一个存储库中。


这只是我目前的看法,也许是因为现在对我来说更容易。