npx skills add https://github.com/mindrally/skills --skill pnpm您是一位 pnpm 专家,pnpm 是用于 JavaScript 和 TypeScript 项目的快速、节省磁盘空间的包管理器。
pnpm-lock.yaml)全局安装 pnpm:npm install -g pnpm
或使用 corepack:corepack enable && corepack prepare pnpm@latest --activate
在 package.json 中指定 pnpm 版本:
{
"packageManager": "pnpm@9.0.0"
}
为 monorepo 设置创建 pnpm-workspace.yaml:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
packages:
- 'apps/*'
- 'packages/*'
- 'tooling/*'
package.json 的匹配目录将成为工作区包安装依赖:pnpm install
向特定工作区添加依赖:
pnpm add lodash --filter @org/my-app
pnpm add -D typescript --filter @org/my-lib
对内部依赖使用工作区协议:
{
"dependencies": {
"@org/shared-utils": "workspace:*",
"@org/ui": "workspace:^"
}
}
协议选项:
workspace:* - 任意版本,发布时替换为实际版本workspace:^ - 兼容版本workspace:~ - 仅补丁版本在特定包中运行命令:
pnpm --filter @org/my-app dev
pnpm --filter "./apps/*" build
pnpm --filter "...@org/my-lib" test # 包含其依赖项
pnpm --filter "@org/my-lib..." build # 包含其依赖的包
--filter <package-name> - 特定包--filter "./path/*" - 按路径--filter "...<pkg>" - 包及其依赖项--filter "<pkg>..." - 包及其依赖的包跨工作区运行脚本:
pnpm -r run build # 在所有包中运行
pnpm -r --parallel run dev # 并行运行
pnpm -r --stream run test # 流式输出
为常见操作定义根级脚本:
{
"scripts": {
"build": "pnpm -r run build",
"dev": "pnpm --filter @org/web dev",
"lint": "pnpm -r run lint",
"test": "pnpm -r run test"
}
}
在 .npmrc 中配置提升:
# 严格模式 - 不提升
hoist=false
# 选择性提升
public-hoist-pattern[]=*eslint*
public-hoist-pattern[]=*prettier*
# 强制提升所有依赖(不推荐)
shamefully-hoist=true
在 .npmrc 中配置对等依赖处理:
auto-install-peers=true
strict-peer-dependencies=false
在根 package.json 中覆盖依赖:
{
"pnpm": {
"overrides": {
"lodash": "^4.17.21",
"foo@1.x": "npm:bar@^2.0.0"
}
}
}
pnpm publish 发布在 Docker 中使用 pnpm fetch 以获得更好的缓存:
COPY pnpm-lock.yaml ./
RUN pnpm fetch
COPY . ./
RUN pnpm install --offline
为 CI 缓存配置存储位置
在 CI 环境中使用 --frozen-lockfile
pnpm-lock.yaml.npmrc 确保团队配置一致workspace:*package.json 最小化pnpm dedupe 优化锁文件pnpm audit 进行审计pnpm why <package> 调试依赖问题engine-strict=true 以强制执行 Node.js 版本要求每周安装量
110
代码仓库
GitHub 星标
45
首次出现
2026年1月25日
安全审计
已安装于
gemini-cli91
opencode89
cursor85
claude-code83
codex82
github-copilot79
You are an expert in pnpm, the fast, disk space efficient package manager for JavaScript and TypeScript projects.
pnpm-lock.yaml)Install pnpm globally: npm install -g pnpm
Or use corepack: corepack enable && corepack prepare pnpm@latest --activate
Specify pnpm version in package.json:
{
"packageManager": "pnpm@9.0.0" }
Create pnpm-workspace.yaml for monorepo setup:
packages:
- 'apps/*'
- 'packages/*'
- 'tooling/*'
package.json become workspace packagesInstall dependencies: pnpm install
Add dependencies to specific workspace:
pnpm add lodash --filter @org/my-app
pnpm add -D typescript --filter @org/my-lib
Use workspace protocol for internal dependencies:
{
"dependencies": { "@org/shared-utils": "workspace:*", "@org/ui": "workspace:^" } }
Protocol options:
workspace:* - Any version, replaced with actual version on publishworkspace:^ - Compatible versionsworkspace:~ - Patch versions onlyRun commands in specific packages:
pnpm --filter @org/my-app dev
pnpm --filter "./apps/*" build
pnpm --filter "...@org/my-lib" test # Include dependents
pnpm --filter "@org/my-lib..." build # Include dependencies
--filter <package-name> - Specific package--filter "./path/*" - By path--filter "...<pkg>" - Package and its dependents--filter "<pkg>..." - Package and its dependenciesRun scripts across workspaces:
pnpm -r run build # Run in all packages
pnpm -r --parallel run dev # Run in parallel pnpm -r --stream run test # Stream output
Define root-level scripts for common operations:
{
"scripts": { "build": "pnpm -r run build", "dev": "pnpm --filter @org/web dev", "lint": "pnpm -r run lint", "test": "pnpm -r run test" } }
Configure hoisting in .npmrc:
# Strict mode - no hoisting
hoist=false
# Selective hoisting
public-hoist-pattern[]=*eslint*
public-hoist-pattern[]=*prettier*
# Shamefully hoist everything (not recommended)
shamefully-hoist=true
Configure peer dependency handling in .npmrc:
auto-install-peers=true
strict-peer-dependencies=false
Override dependencies in root package.json:
{
"pnpm": {
"overrides": {
"lodash": "^4.17.21",
"foo@1.x": "npm:bar@^2.0.0"
}
}
}
pnpm publishUse pnpm fetch in Docker for better caching:
COPY pnpm-lock.yaml ./
RUN pnpm fetch COPY . ./ RUN pnpm install --offline
Configure store location for CI caching
Use --frozen-lockfile in CI environments
pnpm-lock.yaml.npmrc for consistent team configurationworkspace:* for internal dependenciespackage.json minimalpnpm dedupe to optimize lockfilepnpm auditpnpm why <package> to debug dependency issuesengine-strict=true to enforce Node.js version requirementsWeekly Installs
110
Repository
GitHub Stars
45
First Seen
Jan 25, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
gemini-cli91
opencode89
cursor85
claude-code83
codex82
github-copilot79
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
120,000 周安装
高端前端开发与设计技能指南:打造现代、艺术级用户界面与交互体验
907 周安装
extract 技能:自动化网页数据抓取工具,生成Playwright脚本和JSON/CSV数据
862 周安装
Binance子账户API开发指南 - 虚拟账户创建、期货期权管理、资产查询
924 周安装
FlowStudio MCP 构建部署 Power Automate 云流指南 | 自动化流程开发
933 周安装
Python PDF 提取技能:使用 pdfplumber 库精确提取文本、表格和元数据
1,000 周安装
Laravel安全最佳实践指南 | 防范CSRF、SQL注入、XSS攻击
1,200 周安装