Bun入门指南

140 阅读1分钟

什么是Bun

笔者第一次听说Bun是读Claude code源码解读文章时看到的,那文章说Claude code...采用了Bun...,内容记不清,但对于Bun这个词笔者我记的相当清楚。

Bun 是用于运行 JavaScript 和 TypeScript 应用程序的集成工具包。它以单一可执行文件的形式发布,其核心是 Bun 运行时,这是一种快速 JavaScript 运行时,可直接替换 Node.js。Bun 采用 Zig 语言编写,底层采用 JavaScriptCore 引擎,大大减少了启动时间和内存使用量。

Bun 被设计为更快、更精简、更先进的 Node.js 的替代品, 可构建纯前端的项目,也可构建后端API项目。

安装

powershell for windows

irm bun.sh/install.ps1|iex

npm 方式

npm install -g bun

二进制安装

下载地址:github.com/oven-sh/bun… 支持mac,linux,windows。

以windows为例:

  1. 下载 bun-windows-x64 并解压到指定目录
  2. 配置对应 bun.exe 环境变量

升级

bun upgrade

验证安装结果

bun -version

入门

  1. 创建工程文件夹
mkdir quickstart
cd quickstart

2. 用bun init初始化工程

$ bun init
? Select a project template - Press return to submit.
❯   Blank
    React
    Library

---
# 选择Blank后,按回车,输出如下:
✓ Select a project template: Blank

 + .gitignore
 + index.ts
 + tsconfig.json (for editor autocomplete)
 + README.md

To get started, run:

    bun run index.ts

bun install v1.4.3-canary.1 (a749e0a9b)

+ @types/bun@1.4.2
+ typescript@7.0.2

6 packages installed [4.07s]

我选Blank,生成后的工程结构如下:

image.png

安装一个第三方包

bun add figlet

查看package.json,会多出

 "dependencies": {
    "figlet": "^1.11.4",
    ...
    }

figlet:将文字转为ASCII码输出

运行一个程序(快速搭建http服务)

编辑index.ts文件,内容如下:

import figlet from "figlet";

const server = Bun.serve({
  port: 3000,
  fetch(req: Request) {
    const body = figlet.textSync("Hello World! ");
    return new Response(body); 
  },
});

console.log(`Listening on http://localhost:${server.port} ...`);

运行

在命令行下输入

> bun index.ts
Listening on http://localhost:3000 ...

查看输出结果

打开浏览器访问 :http://localhost:3000/

返回如下结果:

image.png