前两天,Jest 的创建者 Christoph Nakazawa 发了一篇博文,标题很直接—— "Fastest Frontend Tooling for Humans & AI" 。

这个人可不是嘴上说说。他是 Jest、Metro Bundler 的作者,React Native 早期核心维护者,还做过 yarn。现在在做一个叫 nkzw.tech 的工作室,专门做高性能前端工具。他说自己在 20 多个项目上实测了这套工具链,代码规模从 1000 行到 100 万行都有。

我看完之后的感受是:**他推荐的不是"试试看",而是"我已经全面替换了,你也可以"**。

TypeScript 用 Go 重写了,你知道吗?

2026 年前端圈最大的一件事,应该是 TypeScript 正在用 Go 语言重写

Christoph 说他已经用了六个多月的 tsgo(TypeScript Go 版本),类型检查速度直接提升了约 10 倍。更让他惊讶的是,tsgo 还能捕获到旧版 TypeScript(JavaScript 实现)漏掉的类型错误。也就是说,不只是快了,还更严格了。

怎么迁移?其实很简单:

  1. 安装 @typescript/native-preview

  2. 把项目里的 tsc 命令换成 tsgo

  3. 在 VS Code 里打开实验性的 tsgo 支持

他在自己的 20 多个项目里全部完成了迁移,涵盖了从小型 library 到大型应用的各种体量。

客观说,tsgo 目前还处于 preview 阶段,生态兼容性需要关注。 如果你的项目高度依赖某些 TypeScript 插件或特殊编译行为,建议先在非关键项目上试水。但从他的实测数据来看,收益确实可观。

格式化:Prettier 要被 Oxfmt 替代了?

Prettier 统治前端代码格式化已经好多年了。但 Christoph 指出了一个现实问题——Prettier 慢

他推荐的替代方案是 Oxfmt(来自 oxc 生态),一个用 Rust 写的格式化工具。Oxfmt 内置了 import 排序和 Tailwind CSS class 排序功能,而且速度快了一个量级。

不过他也很实际:Oxfmt 目前还做不到完全替代 Prettier。对于 Markdown、JSON、YAML 这些非 JS/TS 文件,仍然需要 Prettier 来兜底。

所以他的方案是一个渐进式替换——JS/TS 用 Oxfmt,其余语言回退 Prettier。这比"一刀切"务实得多。

ESLint → Oxlint:终于有对手了

ESLint 这些年几乎没有真正意义上的竞争者。Biome 试过,但插件生态始终是硬伤。

Christoph 认为 Oxlint 是第一个真正有戏的 ESLint 替代品,原因很简单:它能直接运行 ESLint 插件

这一点很关键。过去切换 linter 最大的障碍就是——你用了一堆 ESLint 插件,换了工具就全没了。Oxlint 通过一个插件 shim 机制解决了这个问题,甚至还支持通过 oxlint-tsgolint 做 TypeScript 类型感知的 lint。

他还开源了一个叫 @nkzw/oxlint-config 的配置包,坚持五个原则:

  • 只有 Error,没有 Warning:要么修,要么别报

  • 严格且一致的代码风格:优先使用现代语法特性

  • 预防 Bug:禁用已知的坑爹模式

  • 速度优先:砍掉所有慢规则

  • 别碍事:移除主观的风格偏好

这个哲学很有意思——lint 不是用来制造噪音的,而是用来拦截真正的问题

他的完整工具链长什么样?

除了上面三个"主角",Christoph 的推荐清单里还有几个配角:

pnpm —— 他直接说:"这是 JavaScript 最好的包管理器。" 这个观点近两年争议越来越少了,pnpm 确实在速度、磁盘占用、monorepo 支持上全面领先。

Vite —— "最快、最稳定、最可扩展的前端开发平台。" 尤雨溪的 Vite 现在几乎已经是事实标准了,从 Vue 到 React 到 Svelte,生态全面铺开。

React + React Compiler + Async React —— 他依然选择 React 作为 UI 层,但搭配的是最新的编译器优化和异步渲染能力。

npm-run-all2 —— 用来并行跑多个 npm 脚本,不会出现日志交错的问题。这个小工具在 monorepo 场景下特别实用。

ts-node + nodemon + swc —— 服务器端的热重载方案。他说自己试遍了 tsx、bun 等各种方案,但"还没找到一个能完整支持 TypeScript 全部特性,又比这个组合更快的"。

AI 视角:更快的工具 = 更快的 Agent

博文标题里有个容易被忽略的词——**"& AI"**。

Christoph 的核心论点之一是:更快的工具链不只是让人类开发者爽,也是让 AI Agent 更高效的关键基础设施。

想一下,当你让 Claude Code 或 Cursor 去跑类型检查、lint 代码、格式化输出的时候,工具链的速度直接决定了 Agent 的迭代速度。类型检查从 30 秒变成 3 秒,Agent 一个 session 里能多跑好几轮修复循环。

而且更严格的 lint 和类型检查意味着**更强的"护栏"**。AI 写出的代码如果能在毫秒级被 lint 和类型系统拦住,就不需要等到运行时才发现问题。

他在文末还提供了一套专门给 LLM 用的迁移 prompt 模板,可以直接喂给 Claude Code 来自动完成整个工具链的切换。这可能是我见过的第一个明确面向"人 + AI 协作"设计的工具链推荐方案。

冷静看几个问题

虽然这套方案看起来很诱人,但有几点需要冷静思考:

1. 成熟度问题。 tsgo、Oxfmt、Oxlint 都还在快速迭代中。tsgo 还是 preview 状态,Oxfmt 和 Oxlint 的插件生态也远没有 Prettier 和 ESLint 完善。在大型团队、关键生产项目中贸然全量切换,风险不小。

2. 学习成本。 虽然单个工具的迁移都不难,但一次性换掉 TypeScript 编译器 + 格式化工具 + Linter,意味着整个 CI/CD 流水线、编辑器配置、团队规范都要同步调整。

3. "最佳工具链"是个伪命题。 每个团队的项目类型、技术栈、人员构成都不一样。Christoph 的方案适合他的场景——高性能、TypeScript 重度使用、追求极致反馈速度。但如果你的项目更看重生态稳定性和社区支持,渐进式迁移可能比全盘替换更合理。


Christoph 这篇文章的真正价值不在于"你该用什么工具",而在于提出了一个值得思考的方向:2026 年了,前端工具链的评判标准应该从"够用"变成"够快"——而且这个"快"不只是为人类服务,更是为即将全面铺开的 AI Agent 工作流服务。

类型检查 10 倍提速、lint 近乎即时、格式化零感知——这些不是"锦上添花",而是下一代开发工作流的基础设施。

当然,前提是这些工具能稳定下来。目前来看,tsgo 背后有微软官方在推,oxc 生态有 Boshen 和一票贡献者在高速迭代,Vite 有尤雨溪坐镇。这些项目的基本面都还不错,值得持续关注。

参考资料:Christoph Nakazawa, "Fastest Frontend Tooling for Humans & AI", https://cpojer.net/posts/fastest-frontend-tooling, 2026-02-19.

热点推荐

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐