字節(jié)推出超快前端代碼檢查工具,比 ESLint 快 40 倍!
在前端開發(fā)里,代碼規(guī)范檢查幾乎是繞不開的環(huán)節(jié)。過去這些年,ESLint 一直是事實上的行業(yè)標準,但在大項目里,它的性能瓶頸常常讓人頭疼。
最近,字節(jié)跳動 Web Infra 團隊帶來了一個新選擇 —— Rslint。這是一款用 Go 寫的 JavaScript/TypeScript 代碼檢查工具,官方給出的數(shù)據(jù)是:比 ESLint 快 20–40 倍。
為什么會有 Rslint?
ESLint 功能確實很強,但一旦項目規(guī)模上去,速度慢、配置復雜的問題就暴露出來了。字節(jié)團隊在已停更的 tsgolint 項目基礎上做了優(yōu)化,利用 Go 的并發(fā)性能,加上對 TypeScript 語義的深度集成,做出了這款工具。
目前 Rslint 已經(jīng)進入字節(jié)的 Rstack 工具鏈(包括 Rspack、Rsbuild 等),并開源在 GitHub 上,遵循 MIT 協(xié)議,社區(qū)可以自由使用和貢獻。
為什么它比 ESLint 快?
Rslint 的加速點主要有三方面:
?語言選型:用 Go 實現(xiàn),并通過 typescript-go 直接讀取 TypeScript 語義,不需要像 ESLint 那樣把 AST 轉(zhuǎn)來轉(zhuǎn)去,省下很多性能開銷。
?類型優(yōu)先:以 TypeScript 編譯器的語義數(shù)據(jù)為唯一來源,規(guī)則檢查直接基于真實的類型信息,不用重復計算。
?并行化與跨模塊支持:文件加載和規(guī)則執(zhí)行都能并行,天生支持 monorepo,適合企業(yè)級代碼庫。
Rslint 亮點
?性能極快:相比 ESLint,速度提升 20–40 倍,大型項目里幾乎可以做到即時反饋。
?原生支持 TypeScript:類型檢查開箱即用,跨模塊分析也不用額外配置。
?更好的開發(fā)體驗:報錯信息直觀清晰,還會附帶修復建議。
?遷移成本低:大多數(shù) ESLint 和 typescript-eslint 的配置都能兼容,切換成本很小。
?擴展性強:開放 AST、類型和全局檢查數(shù)據(jù),方便開發(fā)者寫自定義規(guī)則。
總之,Rslint 不只是更快的 ESLint,而是在性能、類型支持和使用體驗上都往前邁了一大步。
怎么用?
Rslint 的安裝和上手非常簡單,整體思路跟 ESLint 類似:
安裝:通過 npm/yarn/pnpm 都可以安裝:
# npm
npm install @rslint/core --save-dev
# yarn
yarn add @rslint/core --dev
# pnpm
pnpm add @rslint/core -D配置:Rslint 使用 .rslintrc.json 作為默認配置文件,語法和 ESLint 配置類似。
// .rslintrc.json
{
  "extends": ["eslint:recommended", "@typescript-eslint/recommended"]
}運行:
# 檢查當前目錄下的所有文件
npx rslint lint .
# 僅檢查指定文件
npx rslint lint src/index.ts
# 自動修復(實驗性)
npx rslint lint . --fix寫在最后
Rslint 的出現(xiàn),可以看作是 Linter 工具往 高性能、類型驅(qū)動 方向邁出的一步。小項目里,它能幫你省去等待的煩惱;大項目里,可能直接把 lint 時間砍掉一大半。
隨著 Rstack 生態(tài)逐步完善,Rslint 很可能會成為 ESLint 之外的強力選項。















 
 
 













 
 
 
 