【前端】Bun:快速上手

Bun 是一个超快的 JavaScript 全栈工具链,集成了包管理器、构建器、运行时和开发服务器。

一、环境准备与工具安装

1.1 系统要求

  • 操作系统:Windows 10/11
  • 终端工具:PowerShell / Windows Terminal
  • 可选工具:Git(用于版本控制)

1.2 安装 Bun

# 执行安装脚本(无需管理员权限)
powershell -c "irm bun.sh/install.ps1 | iex"

# 验证安装
bun --version

1.3 卸载 Bun

# 从系统中移除 Bun
> powershell -c ~\.bun\uninstall.ps1

二、项目初始化

2.1 创建基础结构

# 创建项目目录
mkdir bun-ts-app && cd bun-ts-app

# 初始化项目, 本教程不需要, 采用手动创建
bun init

下面是你要求的统一结构整理方式,适用于文档章节,例如 tsconfig.jsonpackage.json 的讲解:


2.2 配置 TypeScript(tsconfig.json

tsconfig.json 是 TypeScript 的配置文件,用于定义编译选项。虽然 Bun 默认支持 TypeScript,但该文件可以提供更严格的类型检查规则,并帮助编辑器理解代码结构。

{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "moduleResolution": "bundler",
    "strict": true,
    "noEmit": true
  }
}
字段名含义说明
target输出的 JavaScript 版本(这里为 ESNext,启用最新语法)
module输出的模块系统(ESNext,使用原生 import/export
moduleResolution模块解析策略,bundler 表示使用 Bun 的内置解析器
strict启用严格模式(包括 noImplicitAnystrictNullChecks 等)
noEmit不输出 .js 文件,构建输出由 bun build 控制

2.3 定义运行脚本(package.json

package.json 是项目的元数据和脚本命令入口。Bun 兼容 Node 风格,因此可以使用 scripts 字段定义常用的运行与构建命令,统一前后端开发流程。

{
  "scripts": {
    "dev:frontend": "bun dev frontend/index.html",
    "build:frontend": "bun build frontend/index.html --outdir dist/frontend",
    "dev:backend": "bun run backend/server.ts",
    "build:backend": "bun build backend/server.ts --compile --outfile dist/backend/server"
  }
}
脚本名命令作用
dev:frontend启动 Bun 的开发服务器,监听 HTML 和 TS 文件变化,实时更新页面
build:frontend打包前端 HTML 和 TS 到 dist/frontend 目录
dev:backend直接运行后端 server.ts 脚本,适用于本地开发调试
build:backend将后端服务编译为原生可执行文件,输出到 dist/backend/server
参数名含义说明
bun dev启动内置开发服务器,支持热重载
bun build构建并打包项目,支持前端文件合并和后端编译
--outdir指定输出目录(用于前端)
--compile编译为原生可执行文件(用于后端)
--outfile指定输出文件路径名(用于后端)

2.4 目录结构

bun-ts-app/
├── frontend/     # 前端代码
├── backend/      # 后端代码
├── dist/         # 构建产物
├── tsconfig.json
└── package.json

三、前端开发实践

3.1 编写基础代码

<!-- frontend/index.html -->
<script type="module" src="./main.ts"></script>

<!-- frontend/main.ts -->
document.getElementById('greeting')!.textContent = 'Hello Bun!';

3.2 开发与构建

# 启动开发服务器(带热更新)
bun run dev:frontend

# 生产环境构建
bun run build:frontend

四、后端开发实践

4.1 编写服务端

// backend/server.ts
import { serve } from "bun";

serve({
  port: 3000,
  fetch: () => new Response("Bun Server Running")
});

4.2 运行与编译

# 开发模式运行
bun run dev:backend

# 编译为独立可执行文件
bun run build:backend

五、依赖管理指南

5.1 安装第三方库

# 前端库
bun add axios lodash

# 后端库
bun add sqlite3

5.2 前端使用示例

// frontend/main.ts
import axios from 'axios';

axios.get('/api/data').then(res => {
  console.log('Received:', res.data);
});

5.3 后端使用示例

// backend/server.ts
import Database from 'sqlite3';

const db = new Database.Database(':memory:');
db.run("CREATE TABLE users(id INTEGER PRIMARY KEY, name TEXT)");

六、项目构建结果

6.1 最终结构

bun-ts-app/
├── frontend/
│   ├── index.html
│   └── main.ts
├── backend/
│   └── server.ts
├── dist/
│   ├── frontend/  # 打包后的静态资源
│   └── backend/   # 编译后的可执行文件
└── package.json

6.2 关键优势

  • 零配置:无需 Webpack/Vite 等构建工具
  • 全栈统一:前后端共用同一工具链
  • 高性能:Bun 的启动速度比传统工具快 5-10 倍
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值