SuperAPI AI 工具集

pnpm

部署与运维

查看项目

更新于 10-15 21:49

技能介绍

用途:pnpm 是 JavaScript 包管理器,使用内容寻址存储和符号链接的 node_modules,消除跨项目重复依赖。本技能用于在需要快速、节省磁盘的包管理、严格依赖解析、企业级 monorepo、CI 安装优化时提供协助。

主要能力:通过内容寻址硬链接存储节省磁盘空间;严格依赖解析,消除幻影依赖(禁止访问未声明的传递依赖);用 pnpm-workspace.yaml 扩展多包工作区并支持快速并行执行;通过全局存储缓存缩短 CI 安装时间。

使用方式:可用 Corepack 启用:corepack enable;corepack prepare pnpm@latest --activate;然后 pnpm add next。工作区在 pnpm-workspace.yaml 中声明 packages(如 packages/、apps/、!/test/),内部依赖用 workspace:* 协议链接本地包。常用命令:pnpm --recursive run test 并行运行所有包测试;pnpm --filter "...[origin/main]" run build 只构建自 main 分支以来修改的包;pnpm --filter @my-org/web-app add lucide-react 向指定包安装依赖;pnpm store status 校验全局存储完整性;pnpm store prune 清理未引用包释放空间。

最佳实践:CI/CD 使用 pnpm install --frozen-lockfile 保证可复现安装;内部依赖用 workspace:* 协议;用 --filter 只对修改包及其依赖者运行命令;用 Corepack 统一团队 pnpm 版本。不要访问未在 package.json 声明的传递包;不要将全局 .pnpm-store 提交到版本控制;不要在同一项目目录混用 npm、yarn 等包管理器。

常见问题:ERR_PNPM_PEER_DEP_ISSUES 未满足 peer 依赖时,可在 .npmrc 配置 auto-install-peers=true 或解决版本;出现 Cannot find module(幻影依赖)时,需将缺失包显式加入 package.json;pnpm-lock.yaml 过期时,本地运行 pnpm install 更新锁文件并提交。

限制:资料未提供具体收费、价格、平台支持范围与性能数据,暂未提供。