name: pnpm description: Node.js 包管理器,具有严格的依赖解析。在运行 pnpm 特定命令、配置工作区或使用目录、补丁或覆盖管理依赖时使用。 metadata: author: Anthony Fu version: “2026.1.28” source: 生成自 https://github.com/pnpm/pnpm,脚本位于 https://github.com/antfu/skills
pnpm 是一个快速、节省磁盘空间的包管理器。它使用内容寻址存储来去重机器上所有项目中的包,显著节省磁盘空间。pnpm 默认强制执行严格的依赖解析,防止幻影依赖。配置应优先放置在 pnpm-workspace.yaml 中以用于 pnpm 特定设置。
重要提示: 在处理 pnpm 项目时,代理应检查 pnpm-workspace.yaml 和 .npmrc 文件以了解工作区结构和配置。在 CI 环境中始终使用 --frozen-lockfile。
此技能基于 pnpm 10.x,生成于 2026-01-28。
核心
| 主题 | 描述 | 参考链接 |
|---|---|---|
| CLI 命令 | 安装、添加、移除、更新、运行、执行、dlx 和工作区命令 | core-cli |
| 配置 | pnpm-workspace.yaml、.npmrc 设置和 package.json 字段 | core-config |
| 工作区 | 支持单仓库,包括过滤、工作区协议和共享锁文件 | core-workspaces |
| 存储 | 内容寻址存储、硬链接和磁盘效率 | core-store |
功能
| 主题 | 描述 | 参考链接 |
|---|---|---|
| 目录 | 为工作区集中管理依赖版本 | features-catalogs |
| 覆盖 | 强制指定依赖(包括传递依赖)的特定版本 | features-overrides |
| 补丁 | 使用自定义修复修改第三方包 | features-patches |
| 别名 | 使用 npm: 协议以自定义名称安装包 | features-aliases |
| 钩子 | 使用 .pnpmfile.cjs 钩子自定义解析 | features-hooks |
| 对等依赖 | 自动安装、严格模式和依赖规则 | features-peer-deps |
最佳实践
| 主题 | 描述 | 参考链接 |
|---|---|---|
| CI/CD 设置 | GitHub Actions、GitLab CI、Docker 和缓存策略 | best-practices-ci |
| 迁移 | 从 npm/Yarn 迁移、处理幻影依赖、单仓库迁移 | best-practices-migration |
| 性能 | 安装优化、存储缓存、工作区并行化 | best-practices-performance |