比 ESLint 快 100  倍的 linter 工具——Oxlint

大家好,我是刘布斯。

如果大家有过中大型项目的开发经验,而且项目中还使用了 ESLint,会发现一些大文件在保存时特别慢,影响开发体验,今天介绍的 Oxlint,号称性能比 ESLint 快 50 - 100 倍,快来了解下吧。


在2023年末,一款基于Rust的linter工具Oxlint引发了广泛的讨论和高度评价。

随着我们的项目扩展和文件数量的增加,eslint检查的速度越来越慢,严重影响了我们的开发效率。

然而,Oxlint的出现为我们带来了新的可能性和希望。

什么是Oxlint

它和 ESLint 一样,是一个 JavaScript 代码检查工具,只是它不需要任何复杂的配置,就能帮助我们捕捉错误或无用代码。

使用 Rust 编写,速度非常地快,和 ESLint 对比起来,大约能快 50 ~ 100 倍。

Oxlint的出现,并不打算完全取代 ESLint,当 ESLint 的缓慢成为工作流程中的瓶颈时,它可以作为增强功能。

特点

  • 速度快!

    官方表示:比 ESLint 快 50 - 100 倍,如下图:

尤大用Oxlint跑了Vue3仓库,约590个文件+约200条规则,仅用时50ms。
  • 易用性

    Oxlint默认提供了一套开箱即用的规则集。这套规则集主要关注代码的正确性(比如语法错误冗余代码容易造成误解的语法)而不是代码的细节优化(比如语法的性能、风格)。

    使用非常简单,只需安装即可。

如何使用

安装

直接在存储库的根目录运行 oxlint:

npx oxlint@latest

or

pnpm dlx oxlint@latest

或者保存到 package.json 中:

npm i -D oxlint

or

pnpm add -D oxlint

package.json配置

"scripts": {
    "oxlint""oxlint -c .eslintrc.json --quiet",
}
"lint-staged": {
    "*.{js,ts}": [
      "oxlint -c .eslintrc.json --fix --quiet"
    ]
}

常用规则

--quiet               Disable reporting on warnings, only errors are reported

--fix                 Fix as many issues as possible. Only unfixed issues are reported in the output

// 使用eslint的rules字段来配置规则,目前只支持json
-c, --config=PATH         ESLint configuration file (experimental)

-h, --help                Prints help information
-V, --version             Prints version information

VSCode插件

搜索下载oxc即可。

实践结果

  1. 检测出了一些我们项目中eslint未检测出来的错误;

  2. 不支持.eslintrc.js,只能支持json文件,详情可查看github.com/oxc-project…;

  1. 不支持extends中的rules规则,这就导致我们只能使用oxlint的现有规则,无法利用oxlint检测eslint配置的全部rules规则,已向开发者提出诉求,期待支持。

  2. 可以支持关闭oxlint中支持的eslint规则,详情可见 github.com/oxc-project…

总结

为了提升lint检测的效率,我们可以在lint过程或者持续集成(CI)的设置中,先行运行oxlint再运行ESLint。这样做的优势在于,oxlint能够拦截并解决大量常见问题,从而避免这些问题在ESLint阶段产生。通过这种方式,能够有效提高lint检测的速度。

最后

还没有使用过我们刷题网站(https://fe.ecool.fun/)或者刷题小程序的同学,如果近期准备或者正在找工作,千万不要错过,题库主打无广告和更新快哦~。

老规矩,也给我们团队的辅导服务打个广告。

原文地址:https://juejin.cn/post/7338022547713916982