Daily Report每日推播
框架工具

每日突破性工具推薦|Oxlint 1.90.0

本文目錄

Oxlint 1.90.0:Rust 靜態分析與 Go 型別引擎的混合式 Lint 架構

推薦類型:Fallback。2026 年 10 月 27 日發布的 1.90.0 是近期活躍版本,並非 11 月 10 日當日新產品;推薦重點是 Type-Aware Linting 穩定化及可逐步取代傳統 ESLint 工具鏈的工程價值。

工具定位與適用情境

Oxlint 是 Oxc 專案的 JavaScript/TypeScript 靜態分析工具。它以 Rust 實作高速、非型別感知的規則與檔案處理;需要 TypeScript 型別資訊的規則則交由 Go 實作的 tsgolint 與 typescript-go 執行。適合 Web 應用、Node.js 服務、TypeScript Monorepo 與希望降低 CI lint 耗時的團隊。

突破性重點

  1. 跨語言混合架構:不必為了型別檢查把所有規則都搬進同一個 JS 執行程序;Rust 處理通用 lint,Go 引擎負責型別語意分析。
  2. 型別感知規則進入穩定階段:官方 2026-07-22 公告指出 tsgolint v7 已涵蓋 typescript-eslint 61 項型別感知規則中的 59 項。這是當時官方公布的覆蓋數,不等於完整 ESLint 相容。
  3. 共用 TypeScript Program:啟用 --type-aware --type-check 後,型別感知 lint 與編譯器診斷可共用 TypeScript Program,減少獨立重建型別圖的工作。
  4. 保留自訂規則彈性:官方 JavaScript Plugins Alpha 提供與部分 ESLint 插件相容的機制,協助遷移既有規則;但仍有不支援的情境。
  5. 近期持續演進:官方 GitHub 2026-10-27 的 Oxlint 1.90.0 新增 TypeScript no-unsafe-enum-assignment 規則、匯出 Oxlintrc 型別,並要求最低 tsgolint v7.0.2005。

核心架構與運作方式

text
原始碼與設定
    ↓
Oxlint CLI(Rust):檔案遍歷、排除規則、配置、一般 lint、診斷整合
    ├─ Rust 規則:快速執行非型別感知檢查
    └─ tsgolint(Go):typescript-go 建立 TypeScript Program
          ├─ 需要型別資訊的規則
          └─ 選用 TypeScript 編譯器診斷
    ↓
統一呈現 lint 與型別診斷

這種分工讓團隊可先採用快速 lint,再逐步啟用較昂貴的型別感知檢查。Monorepo 必須正確配置 tsconfig,必要時先建置依賴套件以提供 .d.ts。

主要優勢

  • 大部分通用規則由原生 Rust 引擎執行,降低 JavaScript 執行期開銷。
  • 支援 TypeScript 型別感知規則,不再侷限於純語法檢查。
  • CLI 可同時報告型別檢查與 lint 診斷,便於 CI 集中處理。
  • 提供逐步遷移方向:可先以 Oxlint 處理通用規則,保留 ESLint 供尚未支援的規則使用。
  • 官方提供每條規則耗時分析,方便找出瓶頸。

與同類工具比較

工具核心特點Oxlint 相對優勢與取捨
ESLint + typescript-eslintJavaScript 插件生態成熟、設定彈性高Oxlint 的原生規則可能更快,但插件與特殊規則不保證完整相容
BiomeFormatter、Linter、Assist 整合Oxlint 著重 lint 與 TypeScript 型別感知;若要單一格式化工具鏈,Biome 更完整
tsc --noEmitTypeScript 編譯器型別診斷Oxlint 的 type-check 模式可合併診斷工作流,但不代表可以不經測試直接移除既有 CI 檢查

缺點與限制

  • Type-aware 功能需要額外安裝 oxlint-tsgolint,並注意與 TypeScript 版本的相容性。
  • 官方當時仍有兩項 typescript-eslint 型別感知規則未覆蓋;自訂 type-aware 插件亦有限制。
  • JavaScript Plugins 於 2026-03 公告仍為 Alpha,部分 Vue/Svelte/Angular 等自訂格式與 Windows 記憶體使用情境有已知限制。
  • TypeScript Program 建置會消耗記憶體與時間;過度寬鬆的 tsconfig include、Monorepo 依賴未建置會影響效果。
  • 官方效能數據依工作負載而異,不能保證每個專案都有相同比例的加速。

適合與不適合

適合:大型 TS Monorepo、CI lint 耗時顯著、願意分階段遷移且能維護 tsconfig 的團隊。 不適合:高度依賴未支援 ESLint 插件、客製化型別感知規則、無法接受 Alpha 插件風險,或要求所有框架檔案格式完全相容的專案。

導入建議

先在測試分支安裝 Oxlint,對照既有 ESLint 診斷結果與 CI 耗時;再安裝相容的 tsgolint,啟用 oxlint --type-aware --type-check。針對 Monorepo,確認 tsconfig 範圍、依賴建置與型別宣告完整性。不要只依單次 benchmark 就移除 ESLint 或 tsc,應比較漏報、誤報、記憶體峰值與執行時間。

結論

Oxlint 值得關注的不是單純「Rust 比 JavaScript 快」,而是把 Rust 規則引擎與 Go 型別引擎分工,讓高效 lint 與型別語意分析能在同一工作流程中協作。對既有 TypeScript 專案,最務實的做法是漸進導入,而非一次性全面替換。

參考來源

延伸閱讀與原始資料。

Oxlint v1.90.0 GitHub Releasegithub.com(另開分頁)Type-Aware Linting Stableoxc.rs(另開分頁)Oxlint Type-Aware Linting Guideoxc.rs(另開分頁)Oxlint JS Plugins Alphaoxc.rs(另開分頁)
← 返回框架工具回到頂端 ↑