Rspack 推出 Rslint:一个用 Go 编写的 TypeScript-First Linter

本篇依然来自于我们的 《前端周刊》 项目!

由团队成员 掘金安东尼 翻译,欢迎大家 进群 持续追踪全球最新前端资讯!!

原文地址:socket.dev/blog/rspack...

Rspack 正式发布了 Rslint ------ 一个基于 typescript-go 构建的高速 TypeScript-first(以 TypeScript 为核心)Linter。这让 Rspack 加入了越来越多"工具链自带 Linter"的浪潮中。

和 Rspack 的 Rust 打包器不同,Rslint 完全用 Go 编写,并依赖微软的实验性编译器 typescript-go 。它最初是 @auvred 开发的 tsgolint(早期概念验证项目)的一个分支,如今被纳入 Rspack 的高性能工具链版图,作为新成员继续发展。

这意味着 Rstack 家族已经不再只是 Rust 打包器 Rspack,而是扩展到了代码检查与分析领域。Rspack 团队押注于 Go 和 typescript-go,来作为类型化 Linting 的核心基础。

特性与目标

Rslint 的 README 鼓励开发者把它理解为"TypeScript 版的 Rust Clippy",更像是一种 TypeScript 原生扩展,而不是传统 ESLint 插件。

它的目标是解决 ESLint 生态中长期存在的痛点:

  • 20--40 倍性能提升:依靠 Go 和 typescript-go,实现远超传统 ESLint 的速度。
  • 默认类型检查:无需复杂配置,就能直接进行基于类型的 Lint。
  • 兼容 ESLint 迁移:尽可能复用现有 ESLint 和 TypeScript-ESLint 配置,降低迁移成本。
  • TypeScript-first 语义:以 TypeScript 编译器作为唯一可信来源,避免边界条件下的不一致。
  • 跨模块分析:不再局限于单文件规则,而是支持项目级别的检查。
  • Monorepo 支持:通过 TypeScript 项目引用和 workspace 配置适配大仓。
  • 开箱即用:内置 TypeScript-ESLint 和常见 ESLint 规则,安装即用。
  • 可扩展性:开放 AST 和类型信息,支持深度语义分析的自定义规则。

目前,Rslint 仍处于实验阶段,但 Rstack 团队的野心远不止"又一个 ESLint 替代品"。

两条并行的"类型化 Linting"路径

有趣的是,Rslint 的发布几乎与 Oxlint 的类型感知 Linting 预览同步。Oxlint 也基于 typescript-go,但通过一个精简后的 tsgolint 分支来实现。

这意味着长期被认为"太慢"的类型化 Linting,现在逐渐进入了可行的落地阶段。

  • Rslint(Go + typescript-go) :直接继承 tsgolint 原型,目标是 TypeScript-first + ESLint 兼容 ,同时带来 20--40 倍性能提升
  • Oxlint(Rust + Oxc + typescript-go) :核心用 Rust 编写,但调用内置的 tsgolint 进行类型检查。这种混合模式允许 Oxlint 添加类型化规则(如 no-floating-promises),同时保留其 Rust CLI 和诊断体系。

两者都押注 typescript-go 能成长为高性能的类型分析基础,但区别在于:

  • Rslint 直接把它作为唯一的语义来源;
  • Oxlint 则把它嵌入到 Rust 工具链中。

这并不是"融合",而是 分化与专精:一条路径把类型化 Linting 当作 Go 版 TypeScript 编译器的自然扩展;另一条路径则当作 Rust 工具链的功能插件。

为什么突然冒出这么多新 Linter?

很多开发者会疑惑:为什么不整合到一个统一方案,而是不断造新 Linter?

原因其实有几点:

  • 架构差异:虽然都基于 typescript-go,Rslint 把它当核心,Oxlint 则是嵌入 Rust 管道。
  • 生态对齐:Rstack 更追求 TypeScript 原生的体验;Oxc 则坚持 Rust 工具链的一致性。
  • 演化路径不同:Rspack 选择"复活 tsgolint",走得更快;Oxc 则选择精简和内嵌,更贴合自身目标。

归根结底,每个工具链都想要端到端的一致性,而不是依赖其他生态的优先级。

工具链割裂下的 Linting

目前的趋势不是统一,而是 碎片化:每个高性能工具链都在自建自己的 Linter、Formatter、Bundler 和测试框架。

它们追求的是:

  • 更快的速度
  • 更紧密的集成
  • 更一致的开发者体验

类型化 Linting 只是最新的试验场。

对开发者来说,这种分化带来的是:更多针对性工具,但也意味着 更少的标准化。过去"用 ESLint 就行"的共识正在被打破,未来你选择哪个 Linter,很可能取决于你采用了哪条工具链。


👉 总结一句话:Rslint 的出现,标志着 TypeScript 生态进入"高速类型化 Linting"时代,但也揭示了工具链割裂带来的新选择与新困惑。

相关推荐
橙子家4 小时前
浏览器缓存之【身份与会话管理】:Cookies 和 Private state tokens
前端
To_OC4 小时前
LC 49 字母异位词分组:想到哈希表很简单,选对 key 才是精髓
javascript·算法·leetcode
最新资讯动态5 小时前
HDC 2026 | 对话鲸鸿动能:存量时代,品牌如何夺回营销“主动权”?
前端
最新资讯动态5 小时前
游戏出海,从产品走向体系
前端
最新资讯动态5 小时前
20人团队跑出百万DAU、大厂也来抢量:谁在鸿蒙生态跑出加速度
前端
最新资讯动态5 小时前
千万开发者背后,鸿蒙商业化的B面
前端
爱勇宝7 小时前
AI 时代:智商决定起点,情商决定走多远
前端·ai编程
kyriewen7 小时前
用了半年 Claude Code 后,我尝试关掉它写了一周代码——结果比想象中严重
前端·javascript·ai编程
IT_陈寒8 小时前
Vite的静态资源打包让我熬夜到三点,这坑千万别跳
前端·人工智能·后端
山河木马9 小时前
矩阵专题0-webGL中的矩阵
javascript·webgl·计算机图形学