名称: pnpm 描述: Node.js包管理器,具有严格的依赖解析。在运行pnpm特定命令、配置工作空间或使用Catalogs、Patches或Overrides管理依赖时使用。 元数据: 作者: Anthony Fu 版本: “2026.1.28” 来源: 生成自 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 |
| 工作空间 | 支持Monorepo,包括过滤、工作空间协议和共享锁文件 | 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迁移、处理幽灵依赖、Monorepo迁移 | best-practices-migration |
| 性能 | 安装优化、存储缓存、工作空间并行化 | best-practices-performance |