如何使用Yarn Workspaces实现Monorepo模式在一个仓库中管理多个项目

Yarn Workspaces是Yarn提供的一种依赖管理机制,它支持在单个代码仓库中管理多个包的依赖。这种机制非常适合需要多个相互依赖的包的项目,能够减少重复依赖,加快依赖安装速度,并简化依赖管理。下面将详细介绍如何使用Yarn Workspaces。

一、创建项目文件夹

首先,需要创建一个新的项目文件夹。在终端中执行以下命令:

mkdir my-yarn-workspace
cd my-yarn-workspace

二、初始化根的package.json

在项目根目录下初始化一个新的package.json文件。执行以下命令:

yarn init -y

这个命令会创建一个默认的package.json文件,包括常规的项目设置。然后,打开根目录下的package.json文件,添加workspaces字段。编辑后的内容如下:

{
  "name": "my-yarn-workspace",
  "version": "1.0.0",
  "private": true,
  "workspaces": ["packages/*"]
}

其中,"private": true确保项目不会意外发布到npm,"workspaces": ["packages/*"]指定所有位于packages文件夹中的子文件夹都是工作空间。

三、创建子包

my-yarn-workspace文件夹下创建一个名为packages的新文件夹:

mkdir packages
cd packages

然后,在packages文件夹中创建两个子包,例如package-apackage-b

mkdir package-a package-b

接下来,初始化每个子包的package.json文件:

cd package-a
yarn init -y
cd ../package-b
yarn init -y
cd ..

执行以上命令后,你将拥有两个子包,它们的结构如下:

my-yarn-workspace/
│
├── packages/
│   ├── package-a/
│   │   └── package.json
│   └── package-b/
│       └── package.json
└── package.json

四、安装依赖

在这两个子包中,你可能需要安装一些依赖。例如,在package-a中安装lodash:

cd packages/package-a
yarn add lodash
cd ../package-b
yarn add lodash
cd ../..

使用Yarn Workspaces时,它们会共享同一份依赖。







扫描下方二维码,关注公众号:程序进阶之路,实时获取更多优质文章推送。


扫码关注

评论