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 核心设计
- Rust 核心(像 Rspack)
- 增量计算(类似 Rust 的 borrow checker)
- WebAssembly 支持
- 专为 React Server Components 设计
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 运行时 + 工具链:
- JavaScript 运行时(替代 Node.js)
- 包管理器(替代 npm/yarn/pnpm)
- 打包器(替代 webpack)
- 测试运行器(替代 Jest)
- TypeScript / JSX 原生支持
由 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 年还不适合核心生产。
适合:
- 小工具 / CLI
- 个人项目
- 性能敏感的场景
不适合:
- 大型生产应用(风险大)
三、Deno
3.1 是什么
Deno 是 Node.js 原作者 Ryan Dahl 的新项目——一个更安全的 JavaScript/TypeScript 运行时。
2018 年发布第一版,2024 年 Deno 2.0 发布。
3.2 核心特点
- TypeScript 原生支持(不用配 ts-node)
- 基于 Rust + V8
- 默认安全(需要权限才能访问网络/文件)
- Web API 兼容(fetch、URL、WebSocket 等)
- 内置打包器(
deno bundle) - 内置格式化 / 测试 / lint
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 是有想法的运行时,但生态不成熟。
适合:
- 个人项目
- 全新应用(从零开始)
- 需要 TS 原生支持
不适合:
- 大型企业应用
- 大量依赖 npm 生态的项目
四、Farm
4.1 是什么
Farm 是 2024 年开源的 Rust 写打包器——目标是"通用、快速、灵活"。
# 启动
npx farm dev
# 构建
npx farm build
4.2 核心特点
- Rust 写(性能强)
- 支持 Webpack-like 和 Vite-like 配置
- 支持任何框架(React/Vue/Svelte/Solid)
- 支持 SSR / SSG
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
适合:
- 简单的页面
- 教学 / demo
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 不要追新
生产环境追求稳定。
- Turbopack 生产 beta,等稳定再上
- Bun 生产有风险,观望
- Farm / Deno 生态不成熟,观察
7.3 该用就用
但开发体验有质的提升时,不要拒绝:
- Vite 取代 webpack:开发体验提升巨大
- Rsbuild 取代 webpack:存量项目迁移成本低
- Biome 取代 ESLint:速度提升巨大
八、未来趋势
8.1 Rust 会成为主流
构建工具的天花板由语言决定。Rust 几乎成了新工具的默认语言:
- Rspack / swc / Turbopack(打包)
- Biome(lint / format)
- Rolldown(Rollup 的 Rust 重写)
8.2 集成化
未来的工具不再分"打包器、linter、formatter、test runner"——全栈一体化:
- Bun = runtime + bundler + package manager + test runner
- Next.js = framework + bundler + dev server
8.3 AI 辅助
未来的工具会集成 AI:
- 自动写 webpack/vite 配置
- 自动优化构建产物
- 自动检测构建问题
(Bun 已经内置了 AI 相关 API)
8.4 边缘计算
构建产物会越来越多在边缘运行(Cloudflare Workers、Vercel Edge),打包器要适配:
- 极小的产物
- 启动快
- 支持 WebAssembly
九、本篇小结
| 工具 | 我的判断 |
|---|---|
| Turbopack | Next.js 项目未来,但等稳定 |
| Bun | 有潜力,生产慎用 |
| Deno | 有想法,生态弱 |
| Farm | 观察 |
| Biome | 立即可用,替代 ESLint |
| 核心趋势 | 表现 |
|---|---|
| Rust | 构建工具新语言 |
| 集成化 | 一站式工具链 |
| AI | 工具集成 AI |
| 边缘 | 构建产物适配边缘 |
下一篇讲 Monorepo 构建工具链——Turborepo、Nx、pnpm workspace 的工程实践。