bun 全能包

来源:Bun 教程 / 时间:2026-09-01

Bun 是一个用于开发现代 JavaScript/TypeScript 应用程序的全能工具包

Bun 运行时

一个旨在作为 Node.js 替代品的高速 JavaScript 运行时 bun run

Bun 包管理器

利用全局缓存和工作区,安装包的速度比 npm 快高达 30 倍

bun install

Bun 测试运行器

兼容 Jest、TypeScript 优先的测试,支持快照、DOM 和监听(watch)模式

bun test

Bun 打包工具

为浏览器和服务器打包 TypeScript、JSX、React 和 CSS

bun build


开始使用

Bun 无依赖 单二进制文件 ,其中包含运行时、包管理器、测试运行器和打包工具

安装 Bun

支持的平台和所有安装方法。

快速入门

通过 Bun.serve 在几分钟内实现 Hello world


包含什么内容

  • 运行时:零开销执行 JavaScript/TypeScript 文件和包 脚本

  • 包管理器:通过 bun install 实现快速安装、工作区、覆盖(overrides)和审计(audits)

  • 测试运行器:兼容 Jest、TypeScript 优先的测试,支持快照、DOM 和监听模式

  • 打包工具:为 JS/TS/JSX 提供原生打包,支持分包(splitting)、插件和 HTML 导入

使用上方的卡片探索每个领域。每个部分都包含概述、简短示例、参考和最佳实践,便于快速浏览和深入研究。


什么是 Bun?

Bun 用于 JavaScript 和 TypeScript 应用程序的全能工具包 作为名为 bun 的单一可执行文件发布

是 Bun 运行时, 高速 JavaScript 运行时,旨在作为 Node.js 的直接替代品 使用 Rust 编写并由 JavaScriptCore 提供支持, 减少了启动时间和内存占用

bun run index.tsx  # TS and JSX supported by default

bun 命令行工具还实现了测试运行器、脚本运行器以及兼容 Node.js 的包管理器。这三者的速度都明显快于现有工具, 在现有的 Node.js 项目中使用 几乎不需要任何改动

bun run start                 # run the `start` script
bun install <pkg>             # install a package
bun build ./index.tsx         # bundle a project for browsers
bun test                      # run tests
bunx cowsay 'Hello, world!'   # execute a package

什么是运行时?

JavaScript(更正式地说是 ECMAScript) 是编程语言的规范。任何人都可以编写 JavaScript 引擎 接收有效的 JavaScript 程序并执行 目前最流行的两个引擎是 V8( Google 开发)和 JavaScriptCore( Apple 开发)两者都开源

但大多数 JavaScript 程序并不能在真空中运行。 需要一种访问外部世界的方法来执行有用的任务。这就是运行时的作用。它们实现额外的 API,并将其提供给执行的 JavaScript 程序

浏览器

浏览器自带的 JavaScript 运行时实现了一套 Web 特有的 API,并暴露在全局 window 对象上。浏览器执行的任何 JavaScript 代码都可以使用这些 API 来为当前网页添加交互式或动态的行为

Node.js

Node.js 非浏览器环境(如服务器)的 JavaScript 运行时。
由 Node.js 执行的 JavaScript 程序 访问一组 Node.js 特有的全局变量(如 Buffer、process 和 __dirname) 用于操作系统级任务的内置模块,例如读取/写入文件 (node:fs) 和网络 (node:net、node:http)。
基于 CommonJS 的模块系统和解析算法,该系统早于 JavaScript 的原生模块系统。

Bun 被设计为更快速、更轻量、更现代的 Node.js 替代品

设计目标

Bun 从零开始设计 充分考虑了当今的 JavaScript 生态系统

  • 速度 Bun 进程的启动速度比 Node.js 快 4 倍

  • TypeScript & JSX 支持。您可以直接执行 .jsx、.ts 和 .tsx 文件;Bun 的转译器会在执行前将它们转换为原生 JavaScript

  • ESM & CommonJS 兼容性。虽然世界正在转向 ES 模块 (ESM),但 npm 上的数百万个包仍然需要 CommonJS Bun 推荐使用 ES 模块,但同时也支持 CommonJS

  • Web 标准 API
    Bun 实现了标准的 Web API,例如 fetch、WebSocket 和 ReadableStream
    Bun 由 Apple 为 Safari 开发的 JavaScriptCore 引擎驱动,因此像 Headers 和 URL 这样的部分 API 直接使用了 Safari 的实现。

  • Node.js 兼容性
    除了支持 Node 风格的模块解析外,Bun 的目标是与内置的 Node.js 全局变量(process、Buffer)和模块(path、fs、http)实现完全兼容。这是一项持续推进的工作。有关当前的兼容状态,请参阅 Node.js 兼容性

Bun 是运行时 长期目标是为使用 JavaScript/TypeScript 构建应用程序提供 紧密结合的基础架构工具包: 包管理器、转译器、打包工具、 脚本运行器和测试运行器

标签: c++项目 TypeScript

下一篇: bun 安装

客服