Skip to content

Bun 学习资源

本章汇总了学习 Bun 的各种资源,包括官方文档、社区资源、开源项目和进阶学习材料。

官方资源

官方网站

官方文档

GitHub 仓库

社区资源

官方社区

社交媒体

教程和文章

入门教程

  1. Bun 官方教程

    • 快速开始
    • 基本概念
    • 常见用例
  2. 视频教程

    • YouTube 上搜索 "Bun.js tutorial"
    • 国内 B 站搜索 "Bun 教程"

进阶文章

  1. 性能优化

    • Bun 性能基准测试
    • 生产环境最佳实践
  2. 框架集成

    • 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"
    }
  ]
}

开源项目

学习示例

  1. Bun Examples

    • 官方示例仓库
    • 各种使用场景
  2. 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 --coverage

API 速查

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 周)

  1. 阅读官方入门文档
  2. 安装并创建第一个项目
  3. 学习基本命令(run, install, add)
  4. 尝试创建简单 HTTP 服务器
  5. 了解与 Node.js 的区别

中级开发者(2-4 周)

  1. 深入学习 Bun API
  2. 掌握打包和测试功能
  3. 学习 Elysia 或其他框架
  4. 了解性能优化技巧
  5. 实践一个完整项目

高级开发者(持续)

  1. 研究 Bun 源码
  2. 参与社区贡献
  3. 开发 Bun 插件
  4. 探索 FFI 和高级特性
  5. 分享经验和教程

常见问题

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 开发体验!


感谢阅读本教程!如有问题或建议,欢迎反馈。

本站内容仅供学习和研究使用。