wtto WTTO'S BLOG

记录一些pnpm的workspace用法

Posted on: 2024年2月23日  at 15:59
记录一些pnpm的workspace用法

使用 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
作者:  wtto
发表时间: 2024年2月23日
最后更新时间:  2024年3月2日
版权说明:  CC BY-NC-ND 4.0 DEED