?不用记该用哪个
接手一个仓库、换个分支、CI 里换了一套锁文件——每换一次包管理器你都要重新记一遍命令。
x 每次都会告诉你它为什么这么选:
[x] 检测到 pnpm-lock.yaml,使用 pnpm
不是要替代包管理器,只是让你不用在四个命令之间来回猜。
接手一个仓库、换个分支、CI 里换了一套锁文件——每换一次包管理器你都要重新记一遍命令。
x 每次都会告诉你它为什么这么选:
[x] 检测到 pnpm-lock.yaml,使用 pnpm
x search react 默认走 npmmirror 国内源。
官方源在国内经常卡十几秒,按一次 --source npm 就切回去。
x find eslint 模糊搜本地和全局的
node_modules,标好版本、位置和依赖类型;
x where eslint --bin 直接拿到可执行文件路径。
xgo cowsay hi 一个命令顶替 npx /
pnpm dlx / yarn dlx / bun x。
本地装了就用本地的,没装才走 dlx。
x use pnpm 往 package.json 写
packageManager 字段——这是检测优先级最高的依据,写完立刻生效。
只有你显式传 --sudo,或者执行失败报权限错误并且你亲口同意,
才会加 sudo。CI 和管道里会直接跳过提问,不会挂住。
你写一条,x 翻译成四个包里对应的那一个。
| x 命令 | npm | pnpm | yarn | bun |
|---|---|---|---|---|
x i |
npm install |
pnpm install |
yarn install |
bun install |
x a axios |
npm install axios |
pnpm add axios |
yarn add axios |
bun add axios |
x a -D ts |
npm install -D ts |
pnpm add -D ts |
yarn add -D ts |
bun add -D ts |
x r lodash |
npm uninstall lodash |
pnpm remove lodash |
yarn remove lodash |
bun remove lodash |
x up |
npm update |
pnpm update |
yarn upgrade |
bun update |
x ls |
npm ls --depth=0 |
pnpm list --depth=0 |
yarn list --depth=0 |
bun ls |
x run dev |
npm run dev |
pnpm run dev |
yarn run dev |
bun run dev |
x dev |
未识别的命令一律当作 package.json 脚本,等价于
x run dev
|
|||
x exec eslint . |
npm exec -- eslint . |
pnpm exec eslint . |
yarn exec eslint . |
bun x eslint . |
xgo cowsay hi |
npx cowsay hi |
pnpm dlx cowsay hi |
yarn dlx cowsay hi |
bun x cowsay hi |
x i --legacy-peer-deps、x dev --port 3000、
x a axios -- --registry 内网源 都能用。选项不会被 x 吃掉,也不会打乱顺序。
从高到低逐级判断,命中即停。每次执行都会告诉你命中了哪一条。
装完就有 x 和 xgo 两个全局命令。
需要 Node.js ≥ 18.18。
git clone https://github.com/hanqindylan/x-pm.git
cd x-pm
npm install
npm run build
npm link
$ x --version
0.1.0
也可以分享给别人,一条命令搞定。
npm i -g github:hanqindylan/x-pm