原文链接: https://codeburst.io/monorepos-by-example-part-1-3a883b49047e

让我们通过实例来探索 monorepos.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6c320ff3-c7a8-4673-864d-86dd61a42b31/Untitled.png

首先,关于 monorepo:

Definitions vary, but we define a monorepo as follows: The repository contains more than one logical project (e.g. an iOS client and a web-application) These projects are most likely unrelated, loosely connected or can be connected by other means (e.g via dependency management tools) The repository is large in many ways:

Atlassian — Monorepos in Git.

其次,我也赞同这些反对 monorepo 项目的论据:

Monorepos in the Wild - Markus Oberlehner - Medium

接下来,我们将通过示例来讨论几个实际的问题,使用 lerna 来管理一个 monorepo 项目( javascript 项目 ) .

这个系列的最终 monorepo 在这里,点击查看.

脚手架

在我们处理 monprepo项目 ( 特别是lerna所管理的monorepo项目 ) 的问题时, 我们需要先建立一个 lerna monorepo 项目, 幸运的是这十分的简单.

首先, 全局安装lerna:

sudo npm install --global lerna

注意: 本教程使用的是nodejs v8.9.4 与 Lerna v2.9.0

创建一个新的文件夹, 并在其中运行一下命令将其转换为一个Lerna monorepo 项目.