有没有人可以跟我谈谈包发布策略背后的理由?我想知道为什么会有这么多“仅限版本”的版本,这使得changelogs过于冗长,=>很难及时升级包。这也使得版本差异化变得更加困难。
例如https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby/CHANGELOG.md
发布于 2020-04-30 07:47:38
The justification behind the package publishing strategy
Gatsby使用lerna作为monorepo分发。其他几个大型开源项目也是以这种方式发布的,包括babel、react等。
这意味着我们的CHANGELOG.md文件与包本身一起分布在包目录中。
Lerna有助于“将大型代码库拆分成独立的版本控制包”。由于Gatsby是一个开源项目,有许多不同的插件、主题、核心等,这种哲学导致了许多包的增量更新。因此,与开源社区的快速迭代是可能的:
将大型代码库拆分成独立的版本控制包,这对于代码共享非常有用。然而,跨多个存储库进行更改是杂乱无章且难以跟踪的,并且跨存储库的测试变得非常复杂。
为了解决这些(和许多其他)问题,一些项目会将它们的代码库组织成多包存储库(有时称为monorepos)。像Babel、React、Angular、Ember、Meteor、Jest和许多其他项目都在一个存储库中开发它们的所有包。
Lerna是一个使用git和npm优化管理多包存储库的工作流程的工具。
Lerna还可以减少开发和构建环境中大量包副本的时间和空间需求-通常这是将项目划分为许多单独的NPM包的缺点。有关详细信息,请参阅提升文档。
https://stackoverflow.com/questions/61505505
复制相似问题