> ## Documentation Index
> Fetch the complete documentation index at: https://bun.zhcndoc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 欢迎使用 Bun

> Bun 是一个用于开发现代 JavaScript/TypeScript 应用的一体化工具包。

<CardGroup>
  <Card
    icon="cog"
    title="Bun 运行时"
    href="/runtime"
    cta={
  <span>
    通过 <code>bun run</code> 开始使用
  </span>
}
  >
    一个快速的 JavaScript 运行时，设计为 Node.js 的替代品
  </Card>

  <Card
    icon="box"
    title="Bun 包管理器"
    href="/pm/cli/install"
    cta={
  <span>
    通过 <code>bun install</code> 开始使用
  </span>
}
  >
    利用全局缓存和工作区，安装包速度比 npm 快30倍
  </Card>

  <Card
    icon="flask-conical"
    title="Bun 测试运行器"
    href="/test"
    cta={
  <span>
    通过 <code>bun test</code> 开始使用
  </span>
}
  >
    与 Jest 兼容，TypeScript 优先支持快照、DOM 和监听模式的测试
  </Card>

  <Card
    icon="combine"
    title="Bun 打包器"
    href="/bundler"
    cta={
  <span>
    通过 <code>bun build</code> 开始使用
  </span>
}
  >
    为浏览器和服务器打包 TypeScript、JSX、React 和 CSS
  </Card>
</CardGroup>

***

## 入门指南

Bun 作为一个单一的、无依赖的二进制文件提供，包含运行时、包管理器、测试运行器和打包器。您是 Bun 新手吗？

<CardGroup>
  <Card icon="download" title="安装 Bun" href="/installation">
    支持的平台及所有安装方法。
  </Card>

  <Card icon="zap" title="快速开始" href="/quickstart">
    使用 Bun.serve 在几分钟内创建 Hello world。
  </Card>
</CardGroup>

***

## 内部组成

* 运行时：几乎无开销地执行 JavaScript/TypeScript 文件和包脚本。
* 包管理器：使用 `bun install` 实现快速安装、工作区、覆盖和审计。
* 测试运行器：支持 Jest，TypeScript 优先，含快照、DOM 和监听模式。
* 打包器：支持 JS/TS/JSX 的原生打包，含代码拆分、插件和 HTML 导入。

通过上方的卡片探索各个领域。每个部分都按照概述、简短示例、参考资料和最佳实践进行组织，便于快速浏览和深入了解。

***

## 什么是 Bun？

Bun 是一个面向 JavaScript 和 TypeScript 应用的一体化工具包。它以名为 `bun` 的单个可执行文件提供。

其核心是 *Bun 运行时*，这是一个快速的 JavaScript 运行时，旨在**直接替代 Node.js**。它使用 Rust 编写，由 JavaScriptCore 驱动，从而减少启动时间和内存使用。

```bash terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}}
bun run index.tsx  # 默认支持 TS 和 JSX
```

`bun` 命令行工具还实现了测试运行器、脚本运行器和兼容 Node.js 的包管理器。这三者都比现有工具快得多，而且你可以在现有 Node.js 项目中使用它们，几乎无需修改。

```bash terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}}
bun run start                 # 运行 `start` 脚本
bun install <pkg>             # 安装一个包
bun build ./index.tsx         # 打包浏览器项目
bun test                      # 运行测试
bunx cowsay 'Hello, world!'   # 执行一个包
```

## 什么是运行时？

JavaScript（或者更正式地说，ECMAScript）仅仅是编程语言的一份\_规范\_。任何人都可以编写一个 JavaScript *引擎*，用于读取并执行有效的 JavaScript 程序。目前使用最广泛的两个引擎是 V8（由 Google 开发）和 JavaScriptCore（由 Apple 开发）。两者都是开源的。

但大多数 JavaScript 程序并不是在真空中运行的。它们需要一种访问外部世界的方式，才能执行有用的任务。这正是 *运行时* 的作用所在。运行时实现了额外的 API，并将这些 API 提供给它们所执行的 JavaScript 程序。

### 浏览器

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

### Node.js

Node.js 是一种用于非浏览器环境（例如服务器）的 JavaScript 运行时。Node.js 执行的 JavaScript 程序除了可以使用用于执行操作系统级任务的内置模块（例如读写文件的 `node:fs`，以及用于网络通信的 `node:net`、`node:http`）之外，还可以访问一组 Node.js 特有的[全局变量](https://nodejs.org/api/globals.html)，例如 `Buffer`、`process` 和 `__dirname`。Node.js 还实现了基于 CommonJS 的模块系统和模块解析算法，而这些早于 JavaScript 原生模块系统的出现。

Bun 被设计为 Node.js 的更快速、更精简、更现代化的替代品。

## 设计目标

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

* **速度**。Bun 进程的启动速度比 [Node.js 快 4 倍](https://twitter.com/jarredsumner/status/1499225725492076544)。
* **TypeScript 与 JSX 支持**。你可以直接执行 `.jsx`、`.ts` 和 `.tsx` 文件；Bun 的转译器会在执行前将这些文件转换为原生 JavaScript。
* **ESM 与 CommonJS 兼容性**。整个生态正逐渐转向 ES 模块（ESM），但 npm 上仍有数百万个软件包依赖 CommonJS。Bun 推荐使用 ES 模块，但也支持 CommonJS。
* **符合 Web 标准的 API**。Bun 实现了 `fetch`、`WebSocket` 和 `ReadableStream` 等标准 Web API。Bun 由 Apple 为 Safari 开发的 JavaScriptCore 引擎驱动，因此 [`Headers`](https://developer.mozilla.org/en-US/docs/Web/API/Headers) 和 [`URL`](https://developer.mozilla.org/en-US/docs/Web/API/URL) 等部分 API 直接使用 [Safari 的实现](https://github.com/oven-sh/bun/blob/HEAD/src/jsc/bindings/webcore/JSFetchHeaders.cpp)。
* **Node.js 兼容性**。除了支持 Node 风格的模块解析之外，Bun 还致力于完全兼容 Node.js 内置的全局对象（`process`、`Buffer`）和模块（`path`、`fs`、`http`）。*这项工作仍在进行中。* 当前状态请参阅 [Node.js 兼容性](/runtime/nodejs-compat)。

Bun 不仅仅是一个运行时。其长期目标是打造一套用于使用 JavaScript/TypeScript 构建应用的统一基础设施工具包：包括包管理器、转译器、打包器、脚本运行器和测试运行器。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.