不用再记这个仓库到底该跑 pnpm 还是 cargo。pmpx 读取项目里本来就有的文件,判断谁才是它的包管理器,然后调用真正的工具。
二进制里不内置任何后端。每个生态都是一个插件,运行时加载 —— 只装你需要的那几个。
cargo install pmpxcurl -LsSfhttps://pmpx.dev/install.sh| shirm https://pmpx.dev/install.ps1 | iex一段动画:固定的命令 pmpx 后面,依次逐字打出并删除动词 —— install、run、test —— 下方三种被探测到的项目类型同步打出同一个动词。Node.js 解析为 pnpm,Rust 解析为 cargo,Go 解析为 go。
用 lockfile、workspace 文件和形态标记给每个已装后端打分。不需要初始化,也不需要先写配置文件。
install、remove、run、build、test、update、exec —— 七个动词在所有仓库里都一样,由后端翻译成该生态真正的写法。
后端是运行时 dlopen 的 cdylib。二进制里一个都不带,插件也不必和你的 rustc 同版本 —— ABI 有版本号并且会被校验。
平局由两份优先级数组决出,按 family 和按插件各一份。.pmpx.toml 可以给仓库钉死一个后端,并且逐层向上收集,monorepo 能在子包里覆盖。
当后端对 exec 没有答案时,pmpx 直接自己执行这条命令。其他动词则明确报错,而不是猜测。
--json 把一次运行变成 stdout 上每行一个 JSON 对象,后端自身的输出被移到 stderr,流始终可解析。