pnpm 实现 Monorepo 一些操作命令
Monorepo(单一存储库)
单一存储库(也称为多包存储库、多项目存储库或单体存储库)
Monorepo 的意思是在版本控制系统的单个代码库里包含了许多项目的代码。这些项目虽然有可能是相关的,但通常在逻辑上是独立的,并由不同的团队维护。
有些公司将所有代码存储在一个代码库中,由所有人共享,因此Monorepos可以非常大。例如,理论上谷歌拥有有史以来最大的代码库,每天有成百上千次提交,整个代码库超过80 TB。其他已知运营大型单一代码库的公司还有微软、Facebook和Twitter。
Monorepos有时被称为单体代码库(monolithic repositories),但不应该与*单体架构(monolithic architecture)*相混淆,单体架构是一种用于编写自包含应用程序的软件开发实践。这方面的一个例子就是Ruby on Rails,它可以处理Web、API和后端工作。
操作步骤
- 在任意层级的子工程目录中,运行此命令,包会安装在工作空间的根目录里,这里是在开发依赖中
$ pnpm add lodash-es -Dw
- 在任意层级的子工程目录中,运行此命令,包会安装在工作空间的根目录里,这里是在生产依赖中
$ pnpm add dz-transform -w
- 在任意层级的子工程目录中,运行此命令,包会安装在指定的子工程目录下,这里是在生产依赖中
$ pnpm add qs --filter @dztest/pkg-one
- 在任意层级的子工程目录中,运行此命令,包会安装在指定的子工程目录下,这里是在开发依赖中
$ pnpm add @types/qs --filter @dztest/pkg-one -D
- pnpm -r, --recursive
别名:m, multi, recursive, -r
与以下命令一起使用时,在工作区的每个项目中运行命令:install
- 基于 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