记录一些pnpm的workspace用法
Posted on: 2024年2月23日 at 15:59
使用 pnpm 自带的 workspace 管理多包仓库,以下是我使用过程中的一些经验。这里记录下来,以供以后查找。
|-- packages
| |-- a
| | |-- src
| | |-- package.json
| |-- b
| | |-- src
| | |-- package.json
| |-- c
| |-- src
| |-- package.json
|-- package.json
|-- pnpm-workspace.yaml
文件说明
package.json
{
"name": "p"
}
pnpm-workspace.yaml
packages:
- 'packages/*'
packages/a/package.json
{
"name": "@p/a"
}
packages/b/package.json
{
"name": "@p/b"
}
packages/c/package.json
{
"name": "c"
}
pnpm 的一些命令
-C,—dir
在相对路径中执行命令。详细说明
# 执行a包的a包的build命令
pnpm -C packages/a build
-w,—workspace-root
在工作空间根目录中执行命令。详细说明
-r
每个包都执行命令。详细说明
# a,b,c三个包分别执行publish命令
pnpm publish -r
—filter,-F
筛选特定的包名。详细说明
# 在c包中安装lodash作为依赖
pnpm add lodash --filter c
# 执行c包的build命令
pnpm -F c build
—workspace
仅在工作区内执行相关命令。
# 在@p/b的包中,安装工作空间中的@p/a包作为依赖
pnpm add @p/a -F @p/b --workspace