pnpm 实现 Monorepo 一些操作命令

Monorepo是指在版本控制系统中使用一个仓库来管理多个项目的代码。这种方式在大型公司如谷歌、微软和Facebook中常见,允许跨项目共享代码。pnpm的工作空间功能支持在Monorepo中管理依赖,可以在不同层级的子工程目录中添加和过滤包,实现递归安装以及包间的内部引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Monorepo(单一存储库)

单一存储库(也称为多包存储库、多项目存储库或单体存储库)

Monorepo 的意思是在版本控制系统的单个代码库里包含了许多项目的代码。这些项目虽然有可能是相关的,但通常在逻辑上是独立的,并由不同的团队维护。

有些公司将所有代码存储在一个代码库中,由所有人共享,因此Monorepos可以非常大。例如,理论上谷歌拥有有史以来最大的代码库,每天有成百上千次提交,整个代码库超过80 TB。其他已知运营大型单一代码库的公司还有微软、Facebook和Twitter。

Monorepos有时被称为单体代码库(monolithic repositories),但不应该与*单体架构(monolithic architecture)*相混淆,单体架构是一种用于编写自包含应用程序的软件开发实践。这方面的一个例子就是Ruby on Rails,它可以处理Web、API和后端工作。

操作步骤

  1. 在任意层级的子工程目录中,运行此命令,包会安装在工作空间的根目录里,这里是在开发依赖中
$ pnpm add lodash-es -Dw
  1. 在任意层级的子工程目录中,运行此命令,包会安装在工作空间的根目录里,这里是在生产依赖中
$ pnpm add dz-transform -w
  1. 在任意层级的子工程目录中,运行此命令,包会安装在指定的子工程目录下,这里是在生产依赖中
$ pnpm add qs --filter @dztest/pkg-one
  1. 在任意层级的子工程目录中,运行此命令,包会安装在指定的子工程目录下,这里是在开发依赖中
$ pnpm add @types/qs --filter @dztest/pkg-one -D
  1. pnpm -r, --recursive
    别名:m, multi, recursive, -r

与以下命令一起使用时,在工作区的每个项目中运行命令:install

  1. 基于 pnpm 提供的 workspace:协议,可以方便的在 packages 内部进行互相引用
$ pnpm add @dztest/pkg-one --filter @dztest/pkg-two

参考

https://pnpm.io/zh/workspaces

https://pnpm.io/zh/pnpm-workspace_yaml

https://qifutao.blog.csdn.net/article/details/124823381

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帝尊菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值