关于lerna的5个问题,如何进行项目优化配置的?

在看 Lerna 文档的时候:

将大型代码仓库分割成多个独立版本化的 软件包(package)对于代码共享来说非常有用。但是,如果某些更改 跨越了多个代码仓库的话将变得很 麻烦 并且难以跟踪,并且, 跨越多个代码仓库的测试将迅速变得非常复杂。

有不明白:
1.将大型代码仓库分割成多个独立版本化的 软件包(package)对于代码共享来说非常有用。是指的monorepo吗?
2.跨越了多个代码仓库的话将变得很 麻烦 并且难以跟踪,并且, 跨越多个代码仓库的测试将迅速变得非常复杂。 指的是共享代码被修改,那么其他代码仓库使用到共享代码的时候,会测试变得复杂且难以跟踪是吗?

为了解决这些(以及许多其它)问题,某些项目会将 代码仓库分割成多个软件包(package),并将每个软件包存放到独立的代码仓库中。但是,例如 Babel、 React、Angular、Ember、Meteor、Jest 等项目以及许多其他项目则是在 一个代码仓库中包含了多个软件包(package)并进行开发。

3.为了解决这些(以及许多其它)问题,某些项目会将 代码仓库分割成多个软件包(package),并将每个软件包存放到独立的代码仓库中 这里和问题1有什么区别?不是没有改进吗?

4.但是,例如 Babel、 React、Angular、Ember、Meteor、Jest 等项目以及许多其他项目则是在 一个代码仓库中包含了多个软件包(package)并进行开发。指的是配置在repo下,那么其他的packages也适用这些配置是吗?

5.那么lerna和这种配置(3.4)有什么关系呢?


回答:

1. 将代码拆成独立的包是monorepo吗?

不是。

文中描述的意思是说,将一个大的项目拆成多个小的项目,每个小项目单独一个仓库。

就像一个函数在了要拆成多个小函数一样方便复用。

2. 共享代码发生变化会使测试变得更加复杂是吗?

对。

就像函数A依赖函数B,函数A又依赖函数C,如果C发生了破坏性就更,B和A都得跟着改。

如果多个项目仓库上发生这种连锁变更,肯定非常麻烦呀,要不停的push,pull不同仓库的代码

3. 对比1来说没啥改进?

错。

1是把多个小项目放在多个仓库里,解决的问题是单体应用太大的巨石应用问题。

3是把多个仓库里的小项目放在同一个仓库里,但是是用monorepo的方式组织,解决的是频繁连锁修改多个项目的问题

4 所有项目共用同样的包吗?

5 lerna能做什么

lerna现在的功能主要是momorepo的包版本管理以及script命令执行。

如果你不做插件开发和写各种单元集成测试,lerna对你来说没太大用。

你想了解的monorepo,npm,yarn,pnpm都原生支持,在官方文档里搜索workspacw就行

最后

你问题中贴的文档链接已经过时好久了,建议直接看英文原版文档

ps,手机码字,就不贴链接了

以上是 关于lerna的5个问题,如何进行项目优化配置的? 的全部内容, 来源链接: utcz.com/p/944984.html

回到顶部