前端新玩具来了,速度快的惊人

开发 前端
12 月 12 日,Oxlint 正式发布,这是一个 JavaScript linter,旨在捕获错误或无用的代码,默认情况下不需要任何配置。根据官方的介绍,Oxlint 使用 Rust 编写,速度比 ESLint 快 50-100 倍!

概念

Oxlint 是 OXC 工具集的其中一个工具,用于捕获错误或无用的代码,作用和 ESLint 类似。

OXC 是字节跳动出品的一个用 Rust 编写的 JavaScript 高性能工具集合,该项目的重点在于构建 JavaScript 的基本编译器工具:解析器、linter、格式化程序、转译器、压缩器和解析器。此外,OXC 还为 Rspack、Rolldown 和 Ezno 等新兴 JavaScript 工具提供支持。

现阶段,oxlint 无意完全取代 ESLint;当 ESLint 的缓慢成为工作流程中的瓶颈时,它可以作为增强功能。

系统要求:oxlint 专为 darwin-arm64、darwin-x64、linux-arm64、linux-x64、win32-arm64 和 win32-x64 构建。

Oxc Github:https://github.com/oxc-project/oxc。

特性

Oxlint 的特新如下:

  • 比 ESLint 快 50 - 100 倍,并随 CPU 核心数量不断扩展。
  • 超过 200 条规则,且正在不断增加,来自 eslint、typescript、eslint-plugin-react、eslint-plugin-jest、eslint-plugin-unicorn 和 eslint-plugin-jsx-a11y。
  • 支持.eslintignore。
  • 支持ESLint 注释禁用。

下面来详细看看这些特性。

比 ESLint 快 50-100 倍

在现实场景中,Shopify 报告称,他们的 75 CI 分钟 ESLint 运行现在只需 10 秒。大部分性能提升源于 Oxlint 专门针对性能而设计,利用 Rust 和并行处理作为关键因素。

检查正确性

Oxlint 默认识别错误、冗余或令人困惑的代码 ,优先考虑正确性而不是不必要的挑剔规则(分类为 perf、suspicious、pedantic 或 style),默认情况下禁用。

Oxlint 默认识别代码中的错误、冗余或令人困惑的部分。它的设计原则是优先考虑代码正确性,而不是过度挑剔的规则。Oxlint 将问题分类为 perf(性能)、suspicious(可疑)、pedantic(追求细节)或 style(风格),默认情况下这些规则是禁用的。

使用方便

Oxlint 的设计目标之一是提供零配置的开箱即用体验,以减少设置新的 JavaScript/TypeScript 代码库时可能遇到的兼容性问题。它甚至不需要 Node.js 环境来运行,并且可以从现有的 ESLint 配置文件中读取当前项目的配置,简化了调整和集成的过程。

增强诊断功能

理解代码检查工具的消息可能会很具有挑战性。Oxlint 的目标是通过准确定位根本原因并提供有用的提示来简化此过程,从而消除了阅读冗长规则文档的需求,节省时间。

在 VSCode代码库中运行 oxlint -D perf:

合并规则

Oxlint 当前尚未提供插件系统,但团队正在积极整合来自流行插件(例如 TypeScript、React、Jest、Unicorn、JSX-a11y和Import)的规则。

Oxc 团队深知在 JavaScript 生态系统中插件的重要性,并且正在研究基于DSL的插件系统。

不过,用户也可能会喜欢一个独立的代码检查工具,它无需管理插件依赖列表,避免兼容性问题,或因版本限制而使用分叉插件。

使用

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

npx oxlint@latest

可以通过以下命令来获取规则列表:

npx oxlint@latest --rules

可以通过以下命令来获取配置说明:

npx oxlint@latest --help

Oxc 提供了 VS Code 插件供开发者使用:

插件下载:https://marketplace.visualstudio.com/items?itemName=oxc.oxc-vscode。

效果

那在真实应用中的效果怎么样呢,下面来看看一些体验反馈。

Vue.js 的作者尤雨溪表示,在对 Vue 3 的代码库进行测试时,测试了约 200 条规则 + 约 590 个文件,在 50 毫秒内就完成了,再次运行仅用了 30 毫秒。

Moonrepo 的创建者表示,oxlint(和 oxc 工具)真是太疯狂了。不仅在性能上,而且在操控性上。依靠 Rust 是一个不错的选择!

Preact 的作者表示,oxlint 对 Shopify 来说是一个巨大的胜利,之前的 linting 需要 75 分钟才能运行,因此将其分散到 CI 中的 40 多个 worker 中。相比之下,oxlint 在单个 worker 上检查相同的代码库大约需要 10 秒,并且输出更容易解释。

责任编辑:姜华 来源: 前端充电宝
相关推荐

2010-04-27 09:34:21

2022-12-15 18:20:46

ClickHouse存储引擎

2018-09-18 14:43:30

HBase查询数据

2018-11-12 12:02:54

SSD硬盘最快

2024-10-30 09:42:43

固态硬盘SSD闪存

2020-12-02 06:13:29

Redis连接池

2011-11-29 16:33:29

惠普激光打印机

2012-04-19 15:17:52

方正扫描仪

2012-05-24 16:07:17

惠普激光打印机

2022-10-09 19:02:06

DequexjjdogofferLast

2021-01-04 09:58:46

5G6G运营商

2011-05-07 10:26:20

激光打印机

2012-02-06 15:47:09

惠普激光打印机

2024-02-22 08:37:28

NodejsJavaScript运行

2012-03-12 11:48:44

惠普激光打印机

2011-12-14 15:25:33

惠普激光打印机

2018-02-08 09:07:19

Opera 浏览器火狐

2012-06-20 13:17:29

惠普激光打印机

2011-08-10 17:46:17

松下传真机

2015-05-08 09:41:18

点赞
收藏

51CTO技术栈公众号