Bun 学习资源
本章汇总了学习 Bun 的各种资源,包括官方文档、社区资源、开源项目和进阶学习材料。
官方资源
官方网站
- Bun 官网:https://bun.sh
- 最新版本下载
- 官方文档
- API 参考
官方文档
- 入门指南:https://bun.sh/docs
- API 参考:https://bun.sh/docs/api
- CLI 命令:https://bun.sh/docs/cli
GitHub 仓库
- Bun 源码:https://github.com/oven-sh/bun
- 源代码
- Issue 跟踪
- 发布说明
- 贡献指南
社区资源
官方社区
- Discord:https://bun.sh/discord
- 实时讨论
- 问题求助
- 功能建议
社交媒体
- Twitter/X:@bunikidevs
- Reddit:r/bunjs
教程和文章
入门教程
Bun 官方教程
- 快速开始
- 基本概念
- 常见用例
视频教程
- YouTube 上搜索 "Bun.js tutorial"
- 国内 B 站搜索 "Bun 教程"
进阶文章
性能优化
- Bun 性能基准测试
- 生产环境最佳实践
框架集成
- Bun + React
- Bun + Vue
- Bun + Next.js
框架和库
Bun 专用框架
| 框架 | 描述 | 链接 |
|---|---|---|
| Elysia | 高性能 Web 框架 | elysiajs.com |
| Hono | 轻量级 Web 框架 | hono.dev |
Elysia 示例
typescript
import { Elysia } from "elysia";
const app = new Elysia()
.get("/", () => "Hello Elysia!")
.get("/user/:id", ({ params }) => `User ${params.id}`)
.post("/login", ({ body }) => body)
.listen(3000);
console.log(`🦊 Elysia 运行在 ${app.server?.hostname}:${app.server?.port}`);兼容框架
这些框架可以在 Bun 中使用:
- Express - 传统 Node.js 框架
- Fastify - 高性能框架
- Koa - 中间件框架
- NestJS - 企业级框架
工具和插件
开发工具
| 工具 | 用途 |
|---|---|
| VS Code 扩展 | Bun 语法支持和调试 |
| Bun 类型定义 | @types/bun |
VS Code 配置
json
// .vscode/settings.json
{
"typescript.tsdk": "node_modules/typescript/lib",
"editor.formatOnSave": true
}
// .vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "bun",
"request": "launch",
"name": "Debug Bun",
"program": "${workspaceFolder}/src/index.ts"
}
]
}开源项目
学习示例
Bun Examples
- 官方示例仓库
- 各种使用场景
Awesome Bun
- 社区收集的资源列表
- GitHub 搜索 "awesome-bun"
实战项目
学习参考的开源项目:
bash
# 克隆示例项目
git clone https://github.com/oven-sh/bun-examples
cd bun-examples
# 运行示例
bun run example-name常用命令速查
项目管理
bash
# 初始化项目
bun init
# 安装依赖
bun install
# 添加依赖
bun add package-name
bun add -d package-name # 开发依赖
# 移除依赖
bun remove package-name
# 更新依赖
bun update运行脚本
bash
# 运行文件
bun run file.ts
bun file.ts
# 监听模式
bun --watch file.ts
# 热重载
bun --hot server.ts
# 运行 package.json 脚本
bun run script-name构建打包
bash
# 打包
bun build ./src/index.ts --outdir ./dist
# 压缩
bun build ./src/index.ts --outdir ./dist --minify
# 生成 sourcemap
bun build ./src/index.ts --outdir ./dist --sourcemap测试
bash
# 运行测试
bun test
# 监听模式
bun test --watch
# 覆盖率
bun test --coverageAPI 速查
Bun 全局对象
typescript
// 版本信息
Bun.version // "1.x.x"
Bun.revision // git commit
// 环境变量
Bun.env.NODE_ENV
// 文件操作
Bun.file(path)
Bun.write(path, data)
// 服务器
Bun.serve({ port, fetch })
// Shell
import { $ } from "bun";
await $`command`;
// 睡眠
await Bun.sleep(1000);
// 密码哈希
await Bun.password.hash("password");
await Bun.password.verify("password", hash);常用导入
typescript
// 测试
import { test, expect, describe } from "bun:test";
// SQLite
import { Database } from "bun:sqlite";
// FFI
import { dlopen, FFIType } from "bun:ffi";
// Shell
import { $ } from "bun";学习路径建议
初学者(1-2 周)
- 阅读官方入门文档
- 安装并创建第一个项目
- 学习基本命令(run, install, add)
- 尝试创建简单 HTTP 服务器
- 了解与 Node.js 的区别
中级开发者(2-4 周)
- 深入学习 Bun API
- 掌握打包和测试功能
- 学习 Elysia 或其他框架
- 了解性能优化技巧
- 实践一个完整项目
高级开发者(持续)
- 研究 Bun 源码
- 参与社区贡献
- 开发 Bun 插件
- 探索 FFI 和高级特性
- 分享经验和教程
常见问题
Q: Bun 稳定吗?
A: Bun 1.0 已正式发布,适合生产使用。但建议关键业务进行充分测试。
Q: 如何报告 Bug?
A: 在 GitHub Issues 提交:https://github.com/oven-sh/bun/issues
Q: 如何参与贡献?
A: 阅读贡献指南:https://github.com/oven-sh/bun/blob/main/CONTRIBUTING.md
Q: Bun 会取代 Node.js 吗?
A: Bun 是 Node.js 的替代选择,不是取代。两者各有优势,根据项目需求选择。
持续学习
关注更新
- 订阅 Bun 博客
- 关注 Twitter 账号
- 加入 Discord 社区
实践项目
- 将现有 Node.js 项目迁移到 Bun
- 使用 Bun 构建新项目
- 参与开源项目
分享经验
- 写博客文章
- 录制视频教程
- 回答社区问题
总结
Bun 是现代 JavaScript 开发的强大工具。通过本教程,你已经学习了:
- ✅ Bun 的安装和基本使用
- ✅ 包管理和模块系统
- ✅ HTTP 服务器和 WebSocket
- ✅ 文件操作和数据库
- ✅ 打包构建和测试
- ✅ 高级特性和性能优化
- ✅ Node.js 兼容性和迁移
继续探索 Bun,享受更快、更简单的 JavaScript 开发体验!
感谢阅读本教程!如有问题或建议,欢迎反馈。