【工具上新】快速了解一站式开发工具 bun

一、Bun 是什么?------ 打破工具链割裂的全栈解决方案

Bun 是一款以 "高性能、一体化" 为核心的 JavaScript/TypeScript 开发工具,它并非单一功能工具,而是整合了运行时、包管理器、构建工具、测试框架的一站式解决方案。与 Node.js、Deno 等仅聚焦运行时的工具不同,Bun 从底层重构了 JavaScript 开发链路,通过 Zig 语言编写的内核实现极致性能,同时兼容 Node.js 生态,让开发者无需在多个工具间切换,大幅提升开发效率。​

自发布以来,Bun 凭借 "零配置、高性能、全功能" 的特点迅速崛起,尤其在 2025 年推出的 v1.2.21 和 v1.2.22 版本中,新增了 SQL 客户端、YAML 原生支持等重磅功能,进一步巩固了其 "全栈开发加速器" 的定位。

Bun 是一个一体化的 JavaScript 工具包,集成了:

  • JavaScript 运行时 - 可直接替代 Node.js
  • 包管理器 - 可替代 npm、yarn 或 pnpm
  • 构建工具 - 可替代 Webpack、Vite 等构建工具
  • 测试运行器 - 内置测试框架

二、核心亮点:为什么选择Bun

  1. 性能碾压:速度与资源效率双突破​

    Bun 的性能优势贯穿开发全流程:​

    包管理速度:bun install 比 npm 快 25 倍、yarn 快 30 倍,安装 Remix 等大型项目时,Bun 仅需 0.4 秒,而 npm 需 10.6 秒;​

    运行时性能:Worker 间 postMessage 字符串传输速度提升 500 倍,简单对象 structuredClone 性能提升 240 倍;​

    资源优化:空闲时服务器进程真正休眠,CPU 使用率接近为零,解决了传统运行时 "空转耗电" 的痛点。​

  2. 全栈工具链:一套工具搞定所有开发需求​

    Bun 彻底终结了 "运行时 + 包管理器 + 构建工具 + 测试工具" 的繁琐组合:​

    运行时:支持 Node.js API 兼容、WebSocket、HTTP 服务,异步迭代器让流式处理更简洁;​

    包管理器:支持工作区、全局缓存、安全扫描,默认禁用危险的 postinstall 脚本,内置 bun audit 漏洞检测工具;​

    构建工具:Bun.build() 支持编程式编译可执行文件,跨平台打包 Windows/Mac/Linux 应用,还能嵌入 Windows 元数据(如图标、版本信息);​

    测试框架:内置测试工具,支持快照测试、代码覆盖率分析,无需额外配置。​

  3. 2025 重磅更新:这些新功能太实用了​

    Bun 近期的两个版本带来了多项 "刚需" 特性,进一步降低开发门槛:​

    统一 SQL 客户端:Bun.SQL 零依赖支持 MySQL/MariaDB、SQLite、PostgreSQL,用简洁的标记模板语法执行查询,兼顾类型安全与原生 SQL 体验:​

    复制代码
    import { SQL } from "bun";​
    const sql = new SQL({ adapter: "mysql", hostname: "127.0.0.1", database: "test" });​
    const users = await sql`SELECT * FROM users WHERE age > 18;`.all();​
  • 原生 YAML 支持:直接导入 .yaml/.yml 文件,或用 Bun.YAML.parse 解析字符串,与 JSON、TOML 支持保持一致;
  • 异步堆栈跟踪:错误日志将显示完整异步调用链,彻底解决 async/await 调试 "断链" 问题;
  • 本地密钥管理:Bun.secrets 借助系统原生凭据存储(macOS 钥匙串、Windows 凭据管理器),安全存储敏感数据,告别明文配置。

三、安装

Windows 系统

  1. 通过 PowerShell 安装(推荐):

    powershell 复制代码
    # 打开 PowerShell 并运行
    irm bun.sh/install.ps1 | iex
  2. 通过 Winget 安装

    powershell 复制代码
    winget install Oven.Sh Bun
  3. 通过 Chocolatey 安装

    powershell 复制代码
    choco install bun

macOS 系统

  1. 通过 curl 安装(推荐):

    bash 复制代码
    curl -fsSL https://bun.sh/install | bash
  2. 通过 Homebrew 安装

    bash 复制代码
    brew tap oven-sh/bun
    brew install bun
  3. 通过 MacPorts 安装

    bash 复制代码
    sudo port install bun

Linux 系统

  1. 通过 curl 安装(推荐):

    bash 复制代码
    curl -fsSL https://bun.sh/install | bash
  2. 通过包管理器安装

    bash 复制代码
    # Debian/Ubuntu
    sudo apt-get install -y unzip
    curl -fsSL https://bun.sh/install | bash
    
    # Fedora/CentOS
    sudo dnf install -y unzip
    curl -fsSL https://bun.sh/install | bash

安装后验证

安装完成后,重启终端并运行以下命令验证安装:

bash 复制代码
bun --version

Bun 常用命令

命令 说明
bun install 安装项目依赖
bun run <script> 运行 package.json 中的脚本
bun dev 启动开发服务器
bun build 构建项目
bun test 运行测试
bunx <package> 临时运行包而不安装

与 npm/pnpm 的对比

如果您熟悉 npm 或 pnpm,可以参考以下对比:

npm/pnpm 命令 Bun 等效命令
npm install bun install
npm run dev bun devbun run dev
npx <package> bunx <package>
npm install <package> bun add <package>
npm install -D <package> bun add -d <package>

注意事项

  1. 首次使用:Bun 安装后可能需要重启终端或计算机才能正确识别命令。

  2. 环境变量:如果遇到权限问题,可能需要将 Bun 添加到系统 PATH 环境变量中。

  3. 兼容性:虽然 Bun 与大多数 npm 包兼容,但某些特定于 Node.js 的原生模块可能不完全兼容。

  4. IDE 集成:大多数现代 IDE(如 VS Code)支持 Bun,您可能需要配置默认的包管理器。

  5. 最好不要使用 npm 来安装 bun,这样会削弱其高性能的优势,可能会导致循环依赖,从而造成无法正常工作。

相关推荐
草莓熊Lotso24 分钟前
红黑树从入门到进阶:4 条规则如何筑牢 O (logN) 效率根基?
服务器·开发语言·c++·人工智能·经验分享·笔记·后端
曹牧30 分钟前
C#:姓名脱敏
开发语言·c#
缺点内向30 分钟前
C# 中 Word 文档目录的插入与删除指南
开发语言·c#·word·.net
r***d86532 分钟前
Rust宏编程指南
开发语言·后端·rust
czhc114007566340 分钟前
C# 1120抽象类 static
java·开发语言·c#
你不是我我1 小时前
【Java 开发日记】有了解过 SpringBoot 的参数配置吗?
java·开发语言·spring boot
ivanfor6661 小时前
多租户架构的三级权限体系:设计逻辑与精准控制实现
java·开发语言·数据库
zzzsde1 小时前
【C++】C++11(1):右值引用和移动语义
开发语言·c++·算法
学困昇1 小时前
C++11中的包装器
开发语言·数据结构·c++·c++11