mcpField
P
pnpm

pnpm

github.com/antfu开发6.0k22.5k 次安装6 天前更新
代码仓库

关于 pnpm

用于 pnpm 的技能,面向 JavaScript 项目包管理。内容涵盖命令、配置、工作区、依赖管理、安全、任务编排和发布流程,适用于 pnpm v11 与 v12。

主要功能

  1. 01包与工作区命令
  2. 02集中管理版本与依赖覆盖
  3. 03补丁、钩子和同级依赖控制
  4. 04供应链安全设置
  5. 05工作区任务与发布管理

适用场景

  1. 01管理 pnpm 项目依赖
  2. 02配置 JavaScript 单体仓库
  3. 03设置 CI 安装与发布流程

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/antfu/skills --skill pnpm

安装后在 Claude Code 中输入/pnpm确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

GENERATION.md
references/
best-practices-ci.md
best-practices-migration.md
best-practices-performance.md
core-cli.md
core-config.md
core-store.md
core-workspaces.md
features-aliases.md
features-catalogs.md
features-config-dependencies.md
features-global-virtual-store.md
features-hooks.md
features-multi-ecosystem.md
features-overrides.md
features-patches.md
features-peer-deps.md
features-supply-chain-security.md
features-task-orchestration.md
features-versioning.md

详细介绍

pnpm 是一款快速且节省磁盘空间的包管理器。它使用内容寻址存储,在一台机器上的所有项目间去重包,并默认强制严格解析依赖,防止出现幻影依赖。

pnpm v12 是 v11 的 Rust 重写版本:已稳定,并保留了 v11 的命令、标志、设置和锁文件格式,因此这里的大多数指南适用于两者。v12 有少数行为差异(Git 依赖通过 HTTPS 解析、全局二进制文件感知项目、支持其他包管理器、Linux 上 packageImportMethod: auto 优先使用硬链接、移除了 --resolution-only)——请参阅 best-practices-migration。

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

此技能基于 pnpm 12.x,生成于 2026-09-25。在当前文档有所说明的范围内,涵盖 v11 和 v12 的行为(配置拆分、隔离的全局包、allowBuilds、pmOnFail、全局虚拟存储、原生版本管理、工作区任务编排,以及实验性的 Python/Cargo 支持)。

核心

主题描述参考
CLI 命令install/add/remove/update、run、dlx/pnx、workspace、runtime、发布(version、view、sbom、stage)core-cli
配置pnpm-workspace.yaml 设置(camelCase)、全局 config.yaml、packageConfigs、.npmrc 身份验证core-config
工作区Monorepo 支持:筛选、工作区协议、共享锁文件、packageConfigscore-workspaces
存储内容寻址存储、虚拟存储、node 链接器模式、冻结/只读存储core-store

功能

主题描述参考
目录集中管理依赖版本;catalogMode、overrides 中的 catalog:features-catalogs
覆盖项强制指定版本(包括传递依赖和 peer 依赖);packageExtensionsfeatures-overrides
补丁修改第三方包;pnpm-workspace.yaml 中的 patchedDependenciesfeatures-patches
别名使用自定义名称(npm:)安装,以及注册表别名(namedRegistries)features-aliases
钩子.pnpmfile.mjs 钩子(readPackage、updateConfig、beforePacking)、查找器、解析器/获取器features-hooks
Peer 依赖自动安装、严格模式、规则、dedupePeers、peer 检查features-peer-deps
配置依赖通过 configDependencies 在多个仓库间共享钩子/设置/目录/补丁features-config-dependencies
全局虚拟存储与 Shims共享 node_modules、git-worktree 多 Agent 设置、隔离的全局包、项目感知型二进制文件、其他包管理器features-global-virtual-store
供应链安全构建审批(allowBuilds)、minimumReleaseAge、trustPolicy、锁文件完整性features-supply-chain-security
任务编排跨项目任务图(tasks/dependsOn)、并发组、优先级、pnpm pipelinefeatures-task-orchestration
发布管理原生版本管理:pnpm change/version -r/lane、发布通道、史诗、固定组features-versioning
多生态系统与 npm 依赖并存的 Python(pypi:)和 Cargo(crate:)依赖(实验性)features-multi-ecosystem

最佳实践

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

评论

支持 Markdown