Skip to main content
Version: 11.x

pnpm-workspace.yaml

pnpm-workspace.yaml 定义了 workspace 的根目录,并使你能够包含/排除工作区中的目录。如果省略 packages 字段,则工作区中仅包含根包。

例如:

🌐 For example:

pnpm-workspace.yaml
packages:
# specify a package in a direct subdir of the root
- 'my-app'
# all packages in direct subdirs of packages/
- 'packages/*'
# all packages in subdirs of components/
- 'components/**'
# exclude packages that are inside test directories
- '!**/test/**'

即使使用自定义位置通配符,根包也始终包含在内。

🌐 The root package is always included, even when custom location wildcards are used.

目录也在 pnpm-workspace.yaml 文件中定义。详情请参见 目录

🌐 Catalogs are also defined in the pnpm-workspace.yaml file. See Catalogs for details.

pnpm-workspace.yaml
packages:
- 'packages/*'

catalog:
chalk: ^4.1.2

catalogs:
react16:
react: ^16.7.0
react-dom: ^16.7.0
react17:
react: ^17.10.0
react-dom: ^17.10.0

packageConfigs

新增于:v11.0.0

🌐 Added in: v11.0.0

允许为单个工作区包设置项目特定的配置。这取代了工作区项目特定的 .npmrc 文件。

🌐 Allows setting project-specific configuration for individual workspace packages. This replaces workspace project-specific .npmrc files.

packageConfigs 可以指定为包名称到配置对象的映射:

pnpm-workspace.yaml
packages:
- "packages/project-1"
- "packages/project-2"
packageConfigs:
"project-1":
saveExact: true
"project-2":
savePrefix: "~"

或者作为模式匹配规则的数组:

🌐 Or as an array of pattern-matched rules:

pnpm-workspace.yaml
packages:
- "packages/project-1"
- "packages/project-2"
packageConfigs:
- match: ["project-1", "project-2"]
modulesDir: "node_modules"
saveExact: true