设置(pnpm-workspace.yaml)

pnpm 从命令行、环境变量和 pnpm-workspace.yaml 获取配置。

仅从 .npmrc 文件中读取身份验证和注册表设置。所有其他设置(例如 hoistPattern、nodeLinker、shamefullyHoist 等)必须在 pnpm-workspace.yaml 或全局的 ~/.config/pnpm/config.yaml 中进行配置。

pnpm config 命令可用于读取和编辑项目和全局配置文件的内容。

相关配置文件为:

注意

授权相关的设置通过 .npmrc 处理。

配置文件中的值可能包含使用 ${NAME} 语法的环境变量。也可以使用默认值指定环境变量。使用 ${NAME-fallback} 将在未设置 NAME 时返回 fallback。 ${NAME:-fallback} ,会在 NAME 不存在或为空字符串时返回 fallback 。

警告

自 v11.5.3 版本起,pnpm-workspace.yaml 中定义镜像源 URL 的设置项——即 registry 以及 registries 和 namedRegistries 中的 URL 值——将不再进行环境变量展开。在这些设置中,包含 ${...} 占位符的值会被忽略。在 registries 的注册源声明形式(自 v11.23.0 起)中,URL 是键而不是值,同样的规则也适用于这些键。由于 pnpm-workspace.yaml 会被提交到仓库中,如果注册源 URL 中包含可展开的环境变量,恶意仓库可能会利用这一点,将环境中的敏感信息泄露给攻击者控制的注册源。改为在受信任的位置配置动态注册源 URL:全局配置文件或 CLI 选项。

注意

自 v11.22.0 起,项目的 pnpm-workspace.yaml 无法决定 pnpm 保存凭据、自身安装位置或其他机器级状态的位置:bin、configDir、dir、globalBinDir、globalDir、npmrcAuthFile、pnpmHomeDir、stateDir、userconfig 和 workspaceDir 在其中会被忽略,并给出警告。请改为在全局配置文件或命令行中设置它们。 cacheDir 和 storeDir 不受影响。

packages#

除设置外,pnpm-workspace.yaml 还定义了工作区的根,并允许你从工作区中包含/排除目录。如果省略 packages 字段,则只有根目录包会被包含在工作区中。

例如:

pnpm-workspace.yaml
packages:
  # 指定根目录直接子目录中的包
  - 'my-app'
  # packages/ 直接子目录中的所有包
  - 'packages/*'
  # components/ 子目录中的所有包
  - 'components/**'
  # 排除测试目录中的包
  - '!**/test/**'

即使使用了自定义目录位置通配符,根软件包也总是被包含.

目录也在 pnpm-workspace.yaml 文件中定义。有关详细信息,请参阅 Catalogs。

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

允许为各个工作区包设置项目特定的配置。这将替换工作区项目特定的 .npmrc 文件。

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

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

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

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

设置#

下面按主题分组列出每一项设置。点击某项设置即可阅读其文档,或打开某个分组的完整参考。

依赖解析#

完整参考 →

Node 模块设置#

完整参考 →

依赖提升设置#

完整参考 →

存储设置#

完整参考 →

锁文件设置#

完整参考 →

网络设置#

完整参考 →

请求设置#

完整参考 →

对等依赖设置#

完整参考 →

命令行设置#

完整参考 →

Node.js 设置#

完整参考 →

构建设置#

完整参考 →

版本设置#

完整参考 →

其它设置#

完整参考 →

工作空间设置#

这些设置同样在 pnpm-workspace.yaml 中配置,但它们会与其所属的工作区功能一并记录。

完整参考 →

在其他地方记录的设置#