/setup-pm
配置项目首选包管理器 (npm/pnpm/yarn/bun)
$ npx -y skills add xiaobei930/cc-best --agent claude-codeShips with cc-best. Installing the plugin gets this command.
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/setup-pm
Context preview
What this command does when you run it.
配置项目首选包管理器 (npm/pnpm/yarn/bun)
Command definition
setup-pm.mddescription: 配置项目首选包管理器 (npm/pnpm/yarn/bun)
argument-hint: "[--detect|--project pm|--global pm|--list]"
allowed-tools: Read, Bash
/setup-pm - 包管理器配置
配置项目或全局的首选包管理器。
快速使用
# 检测当前配置
node scripts/node/setup-package-manager.js --detect
# 设置项目首选为 pnpm
node scripts/node/setup-package-manager.js --project pnpm
# 设置全局首选为 bun
node scripts/node/setup-package-manager.js --global bun
# 列出所有可用选项
node scripts/node/setup-package-manager.js --list
检测优先级
系统按以下顺序检测包管理器:
| 优先级 | 来源 | 说明 | | ------ | ----------------------------------------- | ----------------------- | | 1 | 环境变量 `CLAUDE_PACKAGE_MANAGER` | 最高优先级 | | 2 | 项目配置 `.claude/package-manager.json` | 项目级覆盖 | | 3 | `package.json` 的 `packageManager` | 标准字段 | | 4 | Lock 文件检测 | 自动检测 | | 5 | 全局配置 `~/.claude/package-manager.json` | 用户默认 | | 6 | 回退 | pnpm > bun > yarn > npm |
配置文件格式
项目配置 (.claude/package-manager.json)
{
"packageManager": "pnpm",
"updatedAt": "2024-01-23T10:00:00.000Z"
}全局配置 (~/.claude/package-manager.json)
{
"packageManager": "bun",
"updatedAt": "2024-01-23T10:00:00.000Z"
}package.json 标准字段
{
"name": "my-project",
"packageManager": "pnpm@8.15.0"
}环境变量
设置 `CLAUDE_PACKAGE_MANAGER` 环境变量可覆盖所有配置:
# Windows PowerShell
$env:CLAUDE_PACKAGE_MANAGER = "pnpm"
# macOS/Linux
export CLAUDE_PACKAGE_MANAGER=pnpm
支持的包管理器
| 包管理器 | Lock 文件 | 特点 | | -------- | ----------------- | ------------------ | | **npm** | package-lock.json | Node.js 自带 | | **pnpm** | pnpm-lock.yaml | 快速、节省磁盘空间 | | **yarn** | yarn.lock | 稳定、广泛使用 | | **bun** | bun.lockb | 极快、新一代运行时 |
在 Hooks 中使用
Node.js hooks 会自动使用检测到的包管理器:
const { detect, getRunCommand } = require("./lib/package-manager");
const pm = detect();
console.log(`使用 ${pm.name} (来源: ${pm.source})`);
// 获取运行命令
const devCmd = getRunCommand("dev"); // -> "pnpm dev" 或 "npm run dev"
const testCmd = getRunCommand("test"); // -> "pnpm test" 或 "npm test"> **记住**: 包管理器配置一次到位,后续每个需求都能受益。模板和规范是效率的基础设施。
Read more
description: 配置项目首选包管理器 (npm/pnpm/yarn/bun) argument-hint: "[--detect|--project pm|--global pm|--list]" allowed-tools: Read, Bash
/setup-pm - 包管理器配置
配置项目或全局的首选包管理器。
快速使用
# 检测当前配置 node scripts/node/setup-package-manager.js --detect # 设置项目首选为 pnpm node scripts/node/setup-package-manager.js --project pnpm # 设置全局首选为 bun node scripts/node/setup-package-manager.js --global bun # 列出所有可用选项 node scripts/node/setup-package-manager.js --list
检测优先级
系统按以下顺序检测包管理器:
| 优先级 | 来源 | 说明 | | ------ | ----------------------------------------- | ----------------------- | | 1 | 环境变量 `CLAUDE_PACKAGE_MANAGER` | 最高优先级 | | 2 | 项目配置 `.claude/package-manager.json` | 项目级覆盖 | | 3 | `package.json` 的 `packageManager` | 标准字段 | | 4 | Lock 文件检测 | 自动检测 | | 5 | 全局配置 `~/.claude/package-manager.json` | 用户默认 | | 6 | 回退 | pnpm > bun > yarn > npm |
配置文件格式
项目配置 (.claude/package-manager.json)
{
"packageManager": "pnpm",
"updatedAt": "2024-01-23T10:00:00.000Z"
}全局配置 (~/.claude/package-manager.json)
{
"packageManager": "bun",
"updatedAt": "2024-01-23T10:00:00.000Z"
}package.json 标准字段
{
"name": "my-project",
"packageManager": "pnpm@8.15.0"
}环境变量
设置 `CLAUDE_PACKAGE_MANAGER` 环境变量可覆盖所有配置:
# Windows PowerShell $env:CLAUDE_PACKAGE_MANAGER = "pnpm" # macOS/Linux export CLAUDE_PACKAGE_MANAGER=pnpm
支持的包管理器
| 包管理器 | Lock 文件 | 特点 | | -------- | ----------------- | ------------------ | | **npm** | package-lock.json | Node.js 自带 | | **pnpm** | pnpm-lock.yaml | 快速、节省磁盘空间 | | **yarn** | yarn.lock | 稳定、广泛使用 | | **bun** | bun.lockb | 极快、新一代运行时 |
在 Hooks 中使用
Node.js hooks 会自动使用检测到的包管理器:
const { detect, getRunCommand } = require("./lib/package-manager");
const pm = detect();
console.log(`使用 ${pm.name} (来源: ${pm.source})`);
// 获取运行命令
const devCmd = getRunCommand("dev"); // -> "pnpm dev" 或 "npm run dev"
const testCmd = getRunCommand("test"); // -> "pnpm test" 或 "npm test"> **记住**: 包管理器配置一次到位,后续每个需求都能受益。模板和规范是效率的基础设施。
Role-Driven Development Workflow for Claude Code Transform Claude into a complete development team. From product requirements to code review — one plugin, full workflow. Quick Start • Features • Workflow • Commands • FAQ
Repo: xiaobei930/cc-best

