本地 bin 运行器
按名称运行项目内已安装的 CLI,直接从 node_modules——比 npx 快一个数量级,且从不访问注册表。
按名称运行项目中已安装的 CLI:
nub exec eslint . --fix
nub exec tsc --noEmit
nub exec vitest run --coveragenub exec 命令在 node_modules/.bin 链上解析可执行文件——最近的 node_modules/.bin,然后向上遍历父目录到工作区根目录——并直接执行它。它从不访问注册表:当没有匹配项时,打印安装提示并以退出码 127 退出。对于可能需要获取的名称,使用 nubx,它会回退到注册表。
向上遍历在 Rust 中完成,所以 npx 和 pnpm exec 每次调用支付的完整 Node 引导开销几乎消失了。
调度本地已安装 CLI · 50 次运行
nub exec11.6 ms
bun x10.6 ms
pnpm exec175 ms · 慢 15×
npm exec201 ms · 慢 17×
Yarn Plug'n'Play 项目也可以工作:nub exec 能找到 PnP 注册的 bin,而只遍历 node_modules/.bin 的工具会遗漏。参见模块解析。
传递参数
bin 名称之后的所有内容都原封不动转发给它——不需要记住 -- 分隔符。
nub exec eslint . --fix --max-warnings 0--node
传递 --node 以禁用运行时增强运行 bin——参见运行时概览了解完整约定。
nub exec --node tsc --noEmit相关
- 运行器 —
nubx,跨每个层级解析名称的统一运行器。 - 脚本运行器 —
nub run,package.json脚本运行器。 - 远程 bin 运行器 —
nub dlx,用于未安装的工具。