Turbopack / Bun / Deno 等新势力

Turbopack / Bun / Deno 等新势力

写在前面

上一篇讲了 Rspack/Rsbuild。本篇看 2023 年之后的几个"非主流"工具:Turbopack、Bun、Deno、Farm。这些工具都打着"重新定义"的旗号,但大多数还有明显的边界,本篇会客观分析每一个。

一、Turbopack

1.1 是什么

Turbopack 是 Vercel 团队(Next.js 母公司)开发的 Rust 写打包器。

2022 年发布,Next.js 13.5+ 默认(实验)。

1.2 核心设计

1.3 性能

Next.js 官方数据:

工具 冷启动 HMR
webpack 30s 3s
Turbopack 1.4s 20ms

冷启动比 webpack 快 20 倍,HMR 快 150 倍。

1.4 局限

只能用在 Next.js

Turbopack 不支持独立项目——它是 Next.js 的一部分。

# 必须在 Next.js 项目里
next dev --turbo

独立项目用 Turbopack 基本不可能(2026 年)。

生态不成熟

很多 webpack 插件没有 Turbopack 版本。

生产支持还在 beta

next build --turbo 还在 beta 阶段,生产环境慎用。

1.5 我的评价

Turbopack 是 Next.js 项目的未来,但不适合非 Next.js 项目。

如果你用 Next.js,等生产稳定后再切;否则用 Rspack/Vite。

二、Bun

2.1 是什么

Bun 是一个全栈 JavaScript 运行时 + 工具链:

由 Jarred Sumner 2022 年发布,基于 Zig 写。

2.2 性能

工具 启动 安装
Node.js + npm 200ms 60s
Bun 30ms 8s

启动 6 倍快,安装 7 倍快。

2.3 Bun 的运行时

// 直接运行 TypeScript
bun run index.ts

// 内置 fs/promises,无需 import
const file = Bun.file('package.json');
const contents = await file.text();

// 内置 Web API
const server = Bun.serve({
    port: 3000,
    fetch(req) {
        return new Response('Hello!');
    },
});

2.4 Bun 的打包器

bun build ./index.ts --outdir ./dist --target browser

性能接近 esbuild:

工具 简单项目
esbuild 0.1s
Bun 0.08s
webpack 5s

2.5 Bun 的局限

与 Node.js 不完全兼容

// Bun 不支持
require('./native-module');  // 某些原生模块

// Bun 的 fetch / fs API 和 Node 不一样

生产环境稳定性

Bun 1.x 还在快速迭代,生产项目慎用。

生态还在追赶

很多 npm 包没在 Bun 测试过,可能有问题。

2.6 我的评价

Bun 是有潜力的运行时,但2026 年还不适合核心生产。

适合:

不适合:

三、Deno

3.1 是什么

Deno 是 Node.js 原作者 Ryan Dahl 的新项目——一个更安全的 JavaScript/TypeScript 运行时。

2018 年发布第一版,2024 年 Deno 2.0 发布。

3.2 核心特点

3.3 Deno 2.0 的新特性

最大的变化是完全兼容 Node.js 和 npm:

# 直接用 npm 包
deno run --allow-read main.ts

# 在 Deno 项目里用 Express
import express from 'npm:express';
const app = express();

这让 Deno 从"独立生态"变成了"Node 替代品"。

3.4 性能

工具 HTTP 请求/秒
Node.js 20 60k
Bun 100k
Deno 80k

Deno 性能介于 Node 和 Bun 之间。

3.5 局限

生态没起来

虽然 Deno 2.0 兼容 npm,但很多库没在 Deno 测试过。

团队问题

Deno 公司在 2024 年融资不顺,未来不确定。

3.6 我的评价

Deno 是有想法的运行时,但生态不成熟。

适合:

不适合:

四、Farm

4.1 是什么

Farm 是 2024 年开源的 Rust 写打包器——目标是"通用、快速、灵活"。

# 启动
npx farm dev

# 构建
npx farm build

4.2 核心特点

4.3 配置

// farm.config.ts
import { defineConfig } from '@farmfe/core';

export default defineConfig({
    input: './index.html',
    output: {
        dir: 'dist',
        publicPath: '/',
    },
    plugins: ['@farmfe/plugin-react'],
});

4.4 局限

生态不成熟

2024 年才开源,生态接近零。

与 Vite 插件不兼容

Vite 插件不能直接用。

4.5 我的评价

Farm 是个有意思的尝试,但2026 年还不适合生产。

观察就好,不建议主力用。

五、其他值得关注的

5.1 Parcel 2

Parcel 走的是零配置路线,但速度不如 Vite。

parcel index.html

适合:

5.2 Snowpack

曾经 Vite 的竞争对手,但现在基本停止维护。

5.3 WMR

Web Dev Server 的精简版,作者是 Jason Miller(Preact 作者)。

适合 Preact 项目,生态有限。

5.4 Rome

Rome 想做"前端工具链一统",但2023 年底核心团队离开,项目基本停滞。

5.5 Biome

Rome 的 fork,现在独立发展,专注 linter + formatter(抢 ESLint + Prettier 的市场)。

# 用 Biome 替代 ESLint + Prettier
npx @biomejs/biome check src/

比 ESLint 快 10-100 倍。

六、新势力的对比

6.1 横向对比

工具 语言 定位 速度 生态 生产可用
Turbopack Rust Next.js 专属 ⭐⭐⭐⭐⭐ ⭐⭐ 部分
Bun Zig 全栈运行时 ⭐⭐⭐⭐⭐ ⭐⭐ 部分
Deno Rust + V8 TS 原生运行时 ⭐⭐⭐⭐ ⭐⭐ 部分
Farm Rust 通用打包器 ⭐⭐⭐⭐⭐ ⭐ 实验
Biome Rust Linter + Formatter ⭐⭐⭐⭐⭐ ⭐⭐⭐ ✅

6.2 选型决策树

Next.js 项目        → Turbopack(等生产稳定)
新项目 + 想要 TS 原生 → Deno 2.0
性能极致(小工具)    → Bun
Linter / Formatter  → Biome(替代 ESLint + Prettier)
观望                → 关注 Farm

七、我的选型建议

7.1 2026 年的生产选型

场景 推荐
通用前端项目 Vite 或 Rsbuild
Next.js Next.js + Turbopack(beta)
大型存量 webpack Rsbuild
全栈 JS Node.js + Vite/Rsbuild
CLI 工具 Bun 或 Node.js
Linter Biome 或 ESLint + Prettier
测试 Vitest 或 Bun:test

7.2 不要追新

生产环境追求稳定。

7.3 该用就用

但开发体验有质的提升时,不要拒绝:

八、未来趋势

8.1 Rust 会成为主流

构建工具的天花板由语言决定。Rust 几乎成了新工具的默认语言:

8.2 集成化

未来的工具不再分"打包器、linter、formatter、test runner"——全栈一体化:

8.3 AI 辅助

未来的工具会集成 AI:

(Bun 已经内置了 AI 相关 API)

8.4 边缘计算

构建产物会越来越多在边缘运行(Cloudflare Workers、Vercel Edge),打包器要适配:

九、本篇小结

工具 我的判断
Turbopack Next.js 项目未来,但等稳定
Bun 有潜力,生产慎用
Deno 有想法,生态弱
Farm 观察
Biome 立即可用,替代 ESLint
核心趋势 表现
Rust 构建工具新语言
集成化 一站式工具链
AI 工具集成 AI
边缘 构建产物适配边缘

下一篇讲 Monorepo 构建工具链——Turborepo、Nx、pnpm workspace 的工程实践。

参考资料