Skip to content

Latest commit

 

History

History
166 lines (128 loc) · 19 KB

README-zh-CN.md

File metadata and controls

166 lines (128 loc) · 19 KB

Awesome Monorepo Awesome

一个精心策划的关于 Monorepo 工具、软件和架构的列表。 架构。Monorepos 是单库的简称,是指 储存库,包含多个项目,通常相互关联。 彼此相关。

灵感来自于 vinta/awesome-python.

English | 简体中文

内容

构建系统和依赖性管理工具

  • baur 只在一个 monorepos 分支中构建已更改的应用程序,并管理构建工件 github star
  • Bazel 是谷歌的面向 monorepo 的构建系统。更多关于 Bazel 的信息:awesome-bazel github star
  • Bit 是一个用于建立和管理具有多个组件的 JavaScript 项目的工具,并管理组件的依赖图。 github star
  • Bolt Pkg 是一个超级强大的 JavaScript 项目管理。 github star
  • Buck 是 Facebook 的面向 monorepo 的构建系统。 github star
  • drkns 是一个简单的、与语言无关的 monorepo 构建工具。 github star
  • Garment 是 Farfetch 的 monorepo 构建系统,具有集中和可定制的任务管理。 github star
  • GitLab CI 11.4 支持根据路径变化执行相应的操作。
  • Lerna 是一个用于管理具有多个包的 JavaScript 项目的工具,建立在 Yarn 之上。 github star
  • MBT 是一个具有差异构建支持的构建工具。 github star
  • Nix 是一个具有远程缓存的软件包和发行版构建工具,主要由 NixOS 使用。 github star
  • Nx 是一个用于 TypeScript monorepos 的构建系统和一套 monorepo 管理工具。 github star
  • OAO 是一个基于 Yarn 的、有观点的 JavaScript monorepo 管理工具。 github star
  • Pants 是一个面向 monorepo 的构建系统,被 Twitter、Foursquare 和其他多家公司使用。 github star
  • Please 一个跨语言的构建系统,强调高性能、可扩展性和可复制性。 github star
  • pnpm 是一个 JavaScript 依赖性管理工具,通过一组专门的命令 pnpm multi 来支持 monorepos。 github star
  • Rush Stack 是一个面向大规模TypeScript monorepos 的工具系列,以Rush构建协调器为基础。 github star
  • Spago 是一个由Dhall和package-sets 支持的 PureScript 软件包管理器和构建工具。 github star
  • Symplify/MonorepoBuilder 是一个 PHP 的 monorepo 管理工具。 github star
  • Tainted 是一个确定哪些 Go 软件包需要在 monorepo 中重新构建的工具。 github star
  • Versio 根据 conventional commits 更新 monorepo 项目中的所有版本号,并可以生成更新日志和标签。 github star
  • Yarn 是一个 JavaScript 依赖性管理工具,通过工作空间支持 monorepo。 github star
  • Layer-pack 是一个 Webpack 插件,允许通过可继承的 npm 包/代码层和 es6 的 glob 导入来实现 monorepo 结构。 github star

仓库管理工具

  • Builder 是一个工具,它使得在 Node.js monorepo 中的各个项目之间运送相同的脚本成为可能。例如,跨项目共享构建和测试脚本。 github star
  • FBShipIt 是一个用 Hack 编写的库,用于将提交从一个仓库复制到另一个仓库。 github star
  • adeira/shipit 是 FBShipIt 的一个简化的 JavaScript 移植。 github star
  • Lank 是一个在 Node.js monorepo 中使用自动配置 NODE_PATH 而不是符号链接将包链接在一起的工具。Lank 还允许你在所有(或所有)软件包的子集上运行相同的命令。 github star
  • monorepo-run 是一个帮助程序的集合,用于在 yarn monorepo 的每个包中运行脚本,每个包有一个分离的窗格。 github star
  • oao github star
  • Syncpack 允许在 Lerna Monorepos 中管理多个 package.json 文件。 github star
  • Ultra Runner 是一个智能脚本运行器和 Lerna、Pnpm、Rush 和 Yarn 的构建工具。脚本同时运行,使用依赖性拓扑结构。构建过程会跟踪文件的变化,并在可能的情况下被跳过。 github star
  • wsrun 允许在Yarn workspaces monorepo 的每个包中运行一个命令。 github star

一些好的参考文献

版本控制系统和附加组件

Git

工具

扩展信息

Mercurial

工具

扩展信息

开发流程工具

Code reviews

  • Pull Review Hubot 插件用于自动拉动评论,有很多配置选项。 github star
  • Rietveld 是谷歌的一个代码审查工具,被 Chromium 使用。 github star
  • API Extractor 是用来检测和审查 TypeScript 库的 API 签名的,也是用来发布多包 API 文档。 github star

CI 工具

Code ownership

  • GitHub's CODEOWNERS GitHub 的 CODEOWNERS 可以限制谁可以批准影响 monorepo 某一特定部分的 pull request。
  • Chromium 的 OWNERS 文件启发了 GitHub 的 CODEOWNERS。
  • Write Guard 使用 GitHub 的 actions 来强制执行对 monorepo 项目的文件级写权限。
  • CODEOWNERS 生成器 从子文件夹中的文件为你的 monorepo 生成一个 CODEOWNERS 文件。

著名的公开 monorepos

迁移工具

开发工作流

  • 基于主干的开发,是一种源码控制的分支模式,开发人员在被称为 "主干 "的单一分支上进行代码协作,通过采用文档技术,抵制任何创建其他长效开发分支的压力。因此,他们避免了合并地狱,不破坏构建,并从此幸福地生活在一起。
  • 抽象的分支,是一个套路的技术,以实现树干的 "较长完成 "的变化。

License

CC0

在法律允许的范围内,Uriel Corfa 已经放弃了本作品的所有版权和相关或邻近的权利。