Javascript 对于monorepo,我应该在什么情况下使用lerna或Thread workspace? 问题1:在我的情况下,我应该使用monorepo吗?

Javascript 对于monorepo,我应该在什么情况下使用lerna或Thread workspace? 问题1:在我的情况下,我应该使用monorepo吗?,javascript,node.js,reactjs,git,monorepo,Javascript,Node.js,Reactjs,Git,Monorepo,我现在有几个react项目是在单独的回购协议中开发的,它们彼此不共享代码,但它们都共享一个组件库,这也是一个独立的回购协议,我认为太多的分离会导致无法跟踪,我想知道我的情况是否适合使用monorepo 问题2:如果我使用monorepo,如何为不同的软件包链接不同的版本。 例如,我有packages/libpackages/bpackages/c。和b使用lib@1.0.0,c使用lib@2.0.0 我如何在不发布到npm的情况下管理它 问题3:回到标题,您会选择在什么情况下使用monorepo

我现在有几个react项目是在单独的回购协议中开发的,它们彼此不共享代码,但它们都共享一个组件库,这也是一个独立的回购协议,我认为太多的分离会导致无法跟踪,我想知道我的情况是否适合使用monorepo

问题2:如果我使用monorepo,如何为不同的软件包链接不同的版本。 例如,我有
packages/lib
packages/b
packages/c
。和
b
使用
lib@1.0.0
c
使用
lib@2.0.0

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


问题3:回到标题,您会选择在什么情况下使用monorepo?答案1

如果您的库中已经有一个单独的存储库,那么它已经配置好,可以为您工作。我认为你不需要monorepo,而且项目之间没有关系(lib除外),不是吗?什么样的无法追踪的事情让你觉得无聊?也许解决这种问题更容易,monorepo也会给你带来新的问题

答案2

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

答案3

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


这只是我目前的观点,也许因为现在对我来说比较容易