告别npx:用Bun的bunx一键运行任何CLI工具的完整入门指南
2026/9/3 10:25:20 网站建设 项目流程

告别npx:用Bun的bunx一键运行任何CLI工具的完整入门指南

【免费下载链接】bunIncredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one项目地址: https://gitcode.com/GitHub_Trending/bu/bun

bunx 是 Bun 内置的一键运行 npm 包 CLI 命令的工具,相当于 npx 和 yarn dlx,但速度最快可达 100 倍以上。Bun 是一个极速的 JavaScript 运行时,集打包器、测试运行器和包管理器于一体,而 bunx 就是它"即装即用"的秘密武器——无需提前安装,一条命令即可运行任何 npm 上的命令行工具。

为什么需要 bunx?先认识 npx 的痛点 🐢

用过 npx 的同学都知道它的经典体验:

  • 第一次运行某个工具时,需要临时下载安装,等待时间不可控
  • 本地已安装的工具,npx 也要先解析一遍依赖树才能启动
  • 启动慢是常态,尤其是大依赖的 CLI 工具

而 Bun 官方给出的数据是:bunx 对本地已安装包,比 npx 快大约 100 倍。原因很简单——Bun 的启动时间本身极短(参考下图的对比图,Bun 打包 0.17s,Webpack 5 要 38s):

bunx 在 Bun 安装时自动随附,不需要额外装任何东西。它是bun x的别名,两者完全等价。

30秒上手:bunx 第一条命令 🚀

安装 Bun 后,第一条 bunx 命令就是著名的 cowsay 玩具:

bunx cowsay "Hello world!"

cowsay 是一个打印"会说话的牛"的小工具。如果它还没装过,bunx 会自动从 npm 安装到 Bun 的全局缓存,然后再执行——整个过程无感,下次再运行则直接命中缓存,秒级启动。

它的运行逻辑和 npx 一致:

  1. 先检查本地 node_modules里有没有这个工具
  2. 没有就从 npm 自动下载
  3. 存进 Bun 的全局缓存(位于~/.bun/install/cache),供以后复用

相关文档可以在 docs/pm/bunx.mdx 中找到,缓存机制的完整说明见 docs/pm/global-cache.mdx。

日常实用:这些场景直接替代 npx ✅

场景一:跑脚手架工具

不用全局安装,临时用一次:

bunx create-vite my-app bunx --package @angular/cli ng

场景二:指定包名运行工具(-p 参数)

当"工具名"和"包名"不一样时(比如@angular/cli包提供的是ng命令),用-p--package指定包:

bunx -p renovate renovate-config-validator

场景三:传递参数给被运行的工具

参数放在工具名后面,会原样透传:

bunx my-cli --foo bar

进阶技巧:用 --bun 标志加速 node 脚本 ⚡

很多 CLI 工具的package.json里通过"bin"字段声明可执行文件,文件头部常带#!/usr/bin/env node的 shebang。默认情况下,Bun 会尊重 shebang、另起一个 node 进程来执行它——这就浪费了 Bun 的速度优势。

--bun标志可强制用 Bun 运行时执行:

bunx --bun my-cli

⚠️关键细节--bun必须放在工具名前面才有效,放后面会被当作参数透传出去:

bunx --bun my-cli # ✅ 正确 bunx my-cli --bun # ❌ 错误,--bun 被当作工具参数

常见问题 FAQ ❓

问题答案
bunx 和 bun x 有什么区别?没有区别,bunx 只是bun x的别名
需要单独安装 bunx 吗?不需要,安装 Bun 时自动附带
下载的工具存在哪里?Bun 全局缓存~/.bun/install/cache
支持私有包 / 指定版本吗?支持,如bunx cowsay@1.0.0运行指定版本
和 yarn dlx 哪个快?bunx 基于 Bun 极速运行时,通常明显更快

快速回顾:5 条必须记住的命令清单 📋

  1. bunx cowsay "hi"—— 一键运行任意 npm CLI
  2. bunx -p <包名> <工具名>—— 包名与工具名不同时指定包
  3. bunx <工具名> --参数—— 工具名后传参,原样透传
  4. bunx --bun <工具名>—— 强制 Bun 运行时执行(更快)
  5. bun --version—— 确认已安装 Bun,bunx 即随之可用

结语

bunx 让"临时用一下某个 CLI 工具"这件事变得和敲ls一样轻快:不污染全局环境、命中缓存后近乎零等待、还能借 Bun 运行时再榨出一截性能。如果你还在为 npx 的等待时间皱眉,不妨现在就试试bunx cowsay—— 这大概是你今天学到的最短的一个新命令。

更多包管理知识可参考 docs/pm/ 目录下的安装、更新、审计等完整文档;想深入源码实现,可浏览 src/install/ 目录中 Bun 包管理器的 Rust 实现。

【免费下载链接】bunIncredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one项目地址: https://gitcode.com/GitHub_Trending/bu/bun

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询