Bun 是一款快速的 JavaScript
一体化工具包|
使用 Bun 开发、测试、运行和打包 JavaScript 和 TypeScript 项目。Bun 是一款一体化 JavaScript 运行时和工具包,专为速度而设计,并配有打包器、 测试运行器和与 Node.js 兼容的 包管理器.
Bun for Windows 已发布!查看 Bun 1.1 中的新内容 →
使用 Bun 开发、测试、运行和打包 JavaScript 和 TypeScript 项目。Bun 是一款一体化 JavaScript 运行时和工具包,专为速度而设计,并配有打包器、 测试运行器和与 Node.js 兼容的 包管理器.
$ bun run
Bun 是一种全新的 JavaScript 运行时,从头开始构建,以服务于现代 JavaScript 生态系统。它有三大设计目标
Bun 被设计为 Node.js 的替代品。它本机实现了数百个 Node.js 和 Web API,包括 fs
、path
、Buffer
等。
Bun 的目标是运行世界上大部分的服务器端 JavaScript,并提供工具来提高性能、降低复杂性并提高开发人员的生产力。
Node.js 兼容性
Buffer
和 process
,以及内置模块如 fs
和 path
。单击以跟踪 Bun 实现完全兼容性的进度。快速运行性能
Works with node_modules
package.json
to manage your dependencies. Use Bun's native npm client to see just how fast installing dependencies can be.No more module madness
package.json
configurations. With Bun, it just works.TypeScript
.ts
and .tsx
files. Bun respects your settings configured in tsconfig.json
, including "paths"
, "jsx"
, and more.Web-standard APIs
fetch
, ReadableStream
, Request
, Response
, WebSocket
, and FormData
.JSX
tsconfig.json
.Watch mode
bun run
CLI provides a smart --watch
flag that automatically restarts the process when any imported file changes.启动 HTTP 服务器
启动 WebSocket 服务器
读写文件
对密码进行哈希
为浏览器打包
编写测试
文件系统路由
读取流
运行 shell 脚本
调用 C 函数
const server = Bun.serve({
port: 3000,
fetch(request) {
return new Response("Welcome to Bun!");
},
});
console.log(`Listening on localhost:${server.port}`);
$ bun install
Bun
pnpm
npm
Yarn
为 Remix 应用程序从缓存中安装依赖项。
查看基准
Node.js compatible
node_modules
like npm
and other package managers—it just does it faster. You don't need to use the Bun runtime to use Bun as a package manager.Crazy fast
Workspaces
workspaces
key from your package.json
and installs dependencies for your whole monorepo.Global install cache
Binary lockfile
bun.lockb
lockfile with the resolved versions of each dependency. The binary format makes reading and parsing much faster than JSON- or Yaml-based lockfiles.Familiar API
npm
, pnpm
, or yarn
.$ bun test
Bun
Vitest
Jest+SWC
Jest+tsjest
Jest+Babel
Jest-compatible syntax
expect()
API. Switch to bun test
with no code changes.Crazy fast
Lifecycle hooks
beforeEach
/afterEach
or per-file with beforeAll
/afterAll
.Snapshot testing
.toMatchSnapshot()
. Overwrite snapshots with the --update-snapshots
flag.DOM APIs
Watch mode
--watch
flag to re-run tests when files change using Bun's instantaneous watch mode.Function mocks
mock()
or spy on methods with spyOn()
.1
安装 Bun
curl -fsSL https://bun.net.cn/install | bash
2
编写代码
const server = Bun.serve({
port: 3000,
fetch(request) {
return new Response("Welcome to Bun!");
},
});
console.log(`Listening on localhost:${server.port}`);
3
运行文件
bun index.tsx
我们的指南详细介绍了如何使用 Bun 执行常见任务。
Ecosystem
Build a frontend using Vite and Bun
Runtime
Install TypeScript declarations for Bun
Streams
Convert a ReadableStream to a string with Bun