pnpm

pnpm

热门

Node.js 包管理器,具有严格的依赖解析。在运行 pnpm 特定命令、通过 pnpm-workspace.yaml 配置工作区,或使用目录、补丁、覆盖、配置依赖项或全局虚拟存储管理依赖项时使用。

5444Star
304Fork
更新于 2026/7/1
SKILL.md
readonly只读
name
pnpm
description

Node.js 包管理器,具有严格的依赖解析。在运行 pnpm 特定命令、通过 pnpm-workspace.yaml 配置工作区,或使用目录、补丁、覆盖、配置依赖项或全局虚拟存储管理依赖项时使用。

pnpm 是一个快速、节省磁盘空间的包管理器。它使用内容可寻址存储来对机器上所有项目中的包进行去重,并默认强制执行严格的依赖解析,防止幽灵依赖。

配置模型(重要): pnpm 设置现在位于 pnpm-workspace.yaml(以及全局的 config.yaml)中,使用 camelCase 键。.npmrc 仅用于认证/注册表凭据,package.json 中的 pnpm 字段不再被读取。在 pnpm 项目中工作时,检查 pnpm-workspace.yaml 以了解设置/工作区结构,仅检查 .npmrc 以了解认证信息。在 CI 中始终使用 --frozen-lockfile(或 pnpm ci)。

该技能基于 pnpm 10.x,生成于 2026-06-22。它还涵盖了 v11 的行为变化(配置拆分、隔离的全局包、allowBuildspmOnFail、全局虚拟存储),当前文档对此进行了描述。

核心

主题 描述 参考
CLI 命令 install/add/remove/update, run, dlx/pnx, workspace, runtime, publishing (version, view, sbom, stage) core-cli
配置 pnpm-workspace.yaml 设置(camelCase)、全局 config.yaml、packageConfigs、.npmrc 认证 core-config
工作区 单体仓库支持:过滤、工作区协议、共享锁文件、packageConfigs core-workspaces
存储 内容可寻址存储、虚拟存储、node 链接器模式、冻结/只读存储 core-store

特性

主题 描述 参考
目录 集中式依赖版本;catalogMode、覆盖中的 catalog: features-catalogs
覆盖 强制版本(包括传递依赖和对等依赖);packageExtensions features-overrides
补丁 修改第三方包;pnpm-workspace.yaml 中的 patchedDependencies features-patches
别名 以自定义名称安装(npm:)和注册表别名(namedRegistries) features-aliases
钩子 .pnpmfile.mjs 钩子(readPackage、updateConfig、beforePacking)、查找器、解析器/获取器 features-hooks
对等依赖 自动安装、严格模式、规则、dedupePeers、对等检查 features-peer-deps
配置依赖项 通过 configDependencies 跨仓库共享钩子/设置/目录/补丁 features-config-dependencies
全局虚拟存储 共享 node_modules、git-worktree 多代理设置、隔离的全局包 features-global-virtual-store
供应链安全 构建审批(allowBuilds)、minimumReleaseAge、trustPolicy、锁文件完整性 features-supply-chain-security

最佳实践

主题 描述 参考
CI/CD 设置 GitHub Actions、GitLab、Docker、pnpm ci、存储缓存、冻结锁文件 best-practices-ci
迁移 npm/Yarn → pnpm、幽灵依赖、pnpm v10 → v11 配置迁移 best-practices-migration
性能 安装优化、allowBuilds、全局虚拟存储、工作区并行化 best-practices-performance