使用用 Rust 开发的 Oxlint 1.0 发布,赶紧上车

宣布 Oxlint 1.0 正式发布

简讯: Oxlint 首个稳定版本正式发布!性能相比 ESLint 提升了 50~100 倍 ,支持 500 多条 ESLint 规则 ,并已在 Shopify、Airbnb、梅赛德斯-奔驰 等公司使用。现在就试试看吧!

什么是 Oxlint?

Oxlint 是一个基于 Rust 的 JavaScript 和 TypeScript 代码检查工具 (linter),设计目标是 极致性能快速上手

自 2023 年 12 月首次宣布以来,Oxlint 已历经重大改进,现在发布其第一个稳定版本 1.0 。同时,我们也宣布 Oxlint 拥有一位专职维护者 Cameron,并建立了一支不断扩大的核心开发团队,致力于其维护与持续改进。

真实世界的影响

我们对 Oxlint 在实际大型代码库中的性能表现感到非常自豪------它显著降低了 CI 的执行成本。

我们感谢 5,200 名早期用户,以及以下企业和项目的支持:

  • Shopify:前端平台团队在 Shopify 后台管理系统中使用 Oxlint。
  • Airbnb :在超 126,000 个文件 上运行 oxc/no-barrel-fileimport/no-cycle 多文件分析,仅需 7 秒完成;而 ESLint 在执行这些规则时会超时。
  • 梅赛德斯-奔驰 :将 ESLint 替换为 Oxlint 后,检查时间减少了 71% ,部分项目性能提升高达 97%
  • 大型开源项目 :包括运行时 Bun 和前端框架 Preact 等。

我们曾在最大型的代码库上测试,结果如下:

使用 10 个线程、101 条规则,在 264,925 个文件上完成检查仅用时 22.5 秒

根据 X 和 Bluesky 上的真实用户反馈,Oxlint 的运行速度约为 每秒检查 10,000 个文件(视线程数而定)。

快速开始

Oxlint 非常适合希望立刻开始代码检查、无需复杂配置的开发者。

开箱即用,无需任何配置

ruby 复制代码
# 支持以下包管理器
npm
pnpm
yarn
bun
deno

# 一键运行
$ npx oxlint@latest

虽然不需要配置,但 Oxlint 也支持通过 .oxlintrc.json 文件进行配置,适用于更复杂或大型项目。

该配置格式基于 ESLint v8 的 flat config ,方便迁移,逻辑熟悉。每个源文件将使用其最近的配置文件,并支持使用 override 针对特定文件或路径。此外,你还可以使用共享配置来保持团队一致性。

如果你的项目已使用 ESLint,可以使用 oxlint-migrate 工具将现有 ESLint flat-config 文件迁移到 Oxlint。也可以使用 eslint-plugin-oxlint 来关闭与 Oxlint 重叠的 ESLint 规则,从而同时使用两者。推荐方式为:

复制代码
oxlint && eslint

这样可以充分利用 Oxlint 的快速反馈。

有关更详细的集成方法,请查看 安装指南

版本管理策略

与运行时代码库不同,linter 的更新只影响返回的诊断结果。Oxlint 遵循 语义化版本控制(SemVer)

  • 补丁版本(Patch) :仅修复 bug;
  • 次版本(Minor) :增加规则和诊断覆盖范围,不引入配置变更;
  • 主版本(Major) :包含 CLI 或配置变更,可能需要迁移。

⚠️ 注意:虽然次版本不会破坏配置,但新增规则可能揭示之前未发现的问题,从而影响 CI。

详见 版本管理指南

功能亮点

全面规则覆盖

Oxlint 内置超过 500 条规则,来源包括:

  • 完整 ESLint 规则集 ,包括来自 typescript-eslint 的 TypeScript 规则(不含类型检查相关);

  • 热门插件规则,如:

    • eslint-plugin-unicorn
    • eslint-plugin-jsdoc
    • eslint-plugin-react
    • eslint-plugin-react-hooks
    • eslint-plugin-jest
    • eslint-plugin-import
  • Oxlint 独有规则,如:

    • 错误的比较顺序(bad comparison sequence)
    • 常量比较(const comparisons)
    • 仅用于递归函数的声明(only used in recursion)

灵活配置

通过 .oxlintrc.json 进行灵活配置,支持:

  • 指定目录的嵌套配置
  • 针对特定文件路径或类型的覆盖规则(override patterns)
  • 共享配置扩展,用于团队统一规范

编辑器集成

一流的编辑器支持,包括:

  • VS Code
  • IntelliJ IDEA / WebStorm
  • Zed Editor
  • 通用 LSP(语言服务器协议)支持,兼容更多编辑器

详细诊断提示

Oxlint 旨在提供清晰、可操作的错误提示------不仅描述问题,还会可视化并建议修复方式。

示例 CLI 输出:

javascript 复制代码
> oxlint
  error: Avoid using == for comparing to null. Use === instead.
  file: src/utils.ts:10:15
  suggestion: Replace `==` with `===`

性能基准

我们的测试显示,在相同配置下,Oxlint 比 ESLint 快 50~100 倍

工具 时间
Oxlint(多线程) 615.3 毫秒
Oxlint(单线程) 1.840 秒
ESLint 33.481 秒

路线图

Oxlint 1.0 只是开始!虽然已稳定,我们未来仍有许多计划和新特性:

  • 自定义规则:即将支持 JavaScript 插件,让团队可以定义自己的规则并与 Oxlint 无缝集成。
  • 性能优化:持续提升解析与分析速度。
  • 更细粒度的配置支持(如按 glob 规则配置)--- 计划对齐 ESLint v9。

特别感谢

Oxlint 1.0 是 200 多位贡献者共同努力的成果。我们感谢每一个 bug 报告、功能建议和代码提交。

特别致谢:

  • @branchseer:实现多文件分析运行时
  • @camc314, @mysteryven, @shulaoda:实现了许多复杂规则并进行测试优化
  • @camchenry:实现嵌套配置支持
  • @DonIsaac:改进配置、文档与官网,并代表 Oxlint 出席 SquiggleConf 2024
  • @leaysgur:实现 RegExp 解析器与 JSDoc 插件
  • @Sysix :维护 eslint-plugin-oxlint,并为语言服务器和 VSCode 扩展作出重大贡献
  • @u9g, @rzvxa:实现控制流图分析

加入社区

我们欢迎你提出反馈,与我们一同改进 Oxlint!

你的反馈推动 Oxlint 向前发展!

立即试用!

现在就前往 安装指南,开始使用 Oxlint 吧!

或者深入了解 Oxlint 背后的项目:Oxc 项目主页

相关推荐
恰薯条的屑海鸥11 分钟前
零基础学前端-传统前端开发(第三期-CSS介绍与应用)
前端·css·学习·css3·前端开发·前端入门·前端教程
海盐泡泡龟13 分钟前
盒模型小全
前端·css·盒模型
OpenTiny社区22 分钟前
HDC2025即将拉开序幕!OpenTiny重新定义前端智能化解决方案~
前端·vue.js·github
奇舞精选26 分钟前
前端开发中AI的进阶之路:从思维重构到工程落地
前端·人工智能
每天都想着怎么摸鱼的前端菜鸟29 分钟前
【uniapp】uniapp开发安卓应用接入谷歌登录获取idtoken
前端·google
anyup31 分钟前
震惊了!中石化将开源组件二次封装申请专利,这波操作你怎么看?
前端·程序员
Oriel33 分钟前
Strapi对接OSS:私有链接导致富文本图片过期问题的解决方案
前端
noodb软件工作室42 分钟前
支持中文搜索的markdown轻量级笔记flatnotes来了
前端·后端
Catfood_Eason1 小时前
HTML5 盒子模型
前端·html