跳到主要内容

运行时与服务端能力

Bun 的另一半吸引力,在 runtime。

也就是:

  • TypeScript 直接跑
  • 文件 API 更直接
  • Bun.serve 可以直接起服务
  • 某些轻量服务不必先接一层传统框架

最基础的运行方式

bun index.ts
bun run index.ts

官方 runtime 文档也提到,Bun 对这些文件类型有直接支持:

  • js
  • ts
  • jsx
  • tsx
  • json
  • toml

这也是为什么很多脚本工具在 Bun 下会显得特别顺。

文件 API

const file = Bun.file('package.json')
const text = await file.text()

这类 API 很适合:

  • 构建脚本
  • 配置处理
  • 本地工具
  • 轻量服务

Bun.serve

Bun 自带 HTTP server 能力。

Bun.serve({
port: 3000,
fetch(req) {
return new Response('Hello from Bun')
},
})

它很适合先从这些场景理解:

  • mock server
  • 小型 API
  • 本地代理
  • BFF 原型
  • CLI 附带的小服务

什么时候先别急着全切

如果服务已经进入这些状态:

  • 依赖很多 Node 原生扩展
  • 中间件和插件体系很深
  • 运维链路围绕 Node 已经做了很多约定
  • 团队排障经验主要还是 Node

那 runtime 替换就要更谨慎。

参考来源