Bun入门指南

什么是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

js 复制代码
powershell -c "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. 创建工程文件夹
bash 复制代码
mkdir quickstart
cd quickstart
  1. 用bun init初始化工程
yaml 复制代码
$ 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,生成后的工程结构如下:

安装一个第三方包

csharp 复制代码
bun add figlet

查看package.json,会多出

json 复制代码
 "dependencies": {
    "figlet": "^1.11.4",
    ...
    }

figlet:将文字转为ASCII码输出

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

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

javascript 复制代码
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} ...`);

运行

在命令行下输入

csharp 复制代码
> bun index.ts
Listening on http://localhost:3000 ...

查看输出结果

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

返回如下结果:

相关推荐
我不会起名字3226 分钟前
会话缓存失效排查:区分 Redis 失效与节点广播
redis·后端·go·即时通讯·im·故障排查
treasure14032 分钟前
【复古】浅尝Django前后端不分离
前端·css·python·django·bootstrap·html·web
深入云栈2 小时前
Netty 4.2.x 源码深度解析 (二十三):ByteBuf 核心设计 —— 索引、类型与零拷贝
java·后端·架构
JackJiang2 小时前
IM踩坑:聊天消息ID怎么设计?一个UUID搞不定,我用双ID解决
后端·架构
jay神2 小时前
基于 YOLOv8 的手势识别系统(Web 版)
前端·人工智能·python·深度学习·yolo·计算机视觉·计算机毕业设计
开心猴爷2 小时前
iOS 上架 App 流程
后端·ios
屏什么录2 小时前
长时间录屏中途崩溃:MP4 打不开的 6 种救回方案与参数设置
前端·音视频开发
code_Bo2 小时前
不只命令行:我把跨 Agent 会话同步做成了桌面应用
前端·javascript·后端
kyriewen2 小时前
AI 能把页面写出来,为什么改个需求就开始崩?
前端·javascript·人工智能
OpsEye2 小时前
同一套用例跑两个大模型接口,差异到底出在哪
javascript·ai编程