Help us improve
Share bugs, ideas, or general feedback.
From cc-best
Configures project or global preferred package manager (npm/pnpm/yarn/bun) via flags like --detect, --project pm, --global pm, --list.
npx claudepluginhub xiaobei930/cc-best --plugin cc-bestHow this command is triggered — by the user, by Claude, or both
Slash command
/cc-best:setup-pm [--detect|--project pm|--global pm|--list]Files this command reads when invoked
This command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
# /setup-pm - 包管理器配置 配置项目或全局的首选包管理器。 ## 快速使用 ## 检测优先级 系统按以下顺序检测包管理器: | 优先级 | 来源 | 说明 | | ------ | ----------------------------------------- | ----------------------- | | 1 | 环境变量 `CLAUDE_PACKAGE_MANAGER` | 最高优先级 | | 2 | 项目配置 `.claude/package-manager.json` | 项目级覆盖 | | 3 | `package.json` 的 `packageManager` | 标准字段 | | 4 | Lock 文件检测 | 自动检测 | | 5 | 全局配置 `~/.claude/package-manager.json` | 用户默认 | ...
/setup-pmConfigures preferred package manager (npm/pnpm/yarn/bun) for project or globally. Detects current via env var/project config/package.json/lock files/global config; supports detect/list/global/project flags.
/setup-pmConfigures preferred package manager (npm/pnpm/yarn/bun) for project or globally via detection script, config files, and environment variables.
/setupInteractively sets up Prettier and linting tools: checks NVM/Node version, detects project file types via git, suggests plugins for JS/TS/Vue/PHP/Astro/etc., configures .prettierrc.
/harden-packagesPin dependency versions, disable install scripts, and secure registry configs
/setup-pmConfigures preferred package manager (npm/pnpm/yarn/bun) for project or globally via detection script, config files, and environment variables.
Share bugs, ideas, or general feedback.
配置项目或全局的首选包管理器。
# 检测当前配置
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 |
{
"packageManager": "pnpm",
"updatedAt": "2024-01-23T10:00:00.000Z"
}
{
"packageManager": "bun",
"updatedAt": "2024-01-23T10:00:00.000Z"
}
{
"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 | 极快、新一代运行时 |
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"
记住: 包管理器配置一次到位,后续每个需求都能受益。模板和规范是效率的基础设施。