【工具上新】快速了解一站式开发工具 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,这样会削弱其高性能的优势,可能会导致循环依赖,从而造成无法正常工作。

相关推荐
fantasy5_57 小时前
手撕vector:从零实现一个C++动态数组
java·开发语言·c++
任风雨7 小时前
3.1.1.Java基础知识
java·开发语言
froginwe117 小时前
CSS3 框大小:深入解析与优化技巧
开发语言
C_Liu_7 小时前
12.C++:模版进阶
开发语言·c++
sali-tec8 小时前
C# 基于halcon的视觉工作流-章54-N点标定
开发语言·图像处理·算法·计算机视觉·c#
娇娇yyyyyy8 小时前
C++11新特性基础知识点汇总
开发语言·c++·算法
CILMY238 小时前
【一问专栏】Python中is和==的区别详解
开发语言·python·is·==
书院门前细致的苹果8 小时前
深入理解 Java 多线程与线程池 —— 从原理到实战
java·开发语言
烟花落o8 小时前
指针深入第二弹--字符指针、数组指针、函数指针、函数指针数组、转移表的理解加运用
c语言·开发语言·笔记·vscode·算法