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 的行为变化(配置拆分、隔离的全局包、
allowBuilds、pmOnFail、全局虚拟存储),当前文档对此进行了描述。
核心
| 主题 | 描述 | 参考 |
|---|---|---|
| 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 |






