比 ESLint 快50倍的OxLint 发布了!

告诉大家一个好消息,OxLint 现在正式发布了!OxLint 是一个 JavaScript 代码检查工具,与 ESLint 类似,但它不需要复杂的配置,能够帮助我们捕捉错误或无用代码。与 ESLint 相比,OxLint 使用 Rust 编写,速度非常快,大约比 ESLint 快 50 ~ 100 倍。

尤大也惊叹它的性能绝对的疯狂的:

为什么选择 OxLint?

OxLint 的速度之快令人惊叹。实际场景中,Shopify 表示他们原本需要运行 75 分钟的 ESLint,现在只需 10 秒钟就能完成相同的 lint 操作。这使得在 lint-staged 或 CI 设置中运行 OxLint 的大型项目的速度显著提升。如果您的工作流程受到 ESLint 速度的限制,OxLint 可以作为一个增强工具来使用。

如何使用 OxLint?

要在 JavaScript / TypeScript 代码库中使用 OxLint,只需在存储库的根目录下执行以下命令:

  • npx oxlint@latest
  • pnpm dlx oxlint@latest
  • yarn dlx oxlint@latest
  • bunx oxlint@latest
  • deno run oxlint@latest

如果有错误,命令行会抛出详细的警告。此外,还有一个 VSCode 插件可供使用,您可以在插件市场搜索 “oxc” 来找到它。

使用语法如下,更多参数细节可查阅官网:

Usage: oxlint [-A=NAME | -D=NAME]... [--fix] [PATH]...

OxLint 的设计特点

比 ESLint 快 50-100 倍

OxLint 是专为性能而设计的。它利用 Rust 和并行处理的优势,使得它的速度比 ESLint 快 50 ~ 100 倍。以下数据来自官方对比执行时间,其速度是相当惊人。

Benchmark 1: oxcTime (mean ± σ):     424.0 ms ±   2.2 ms    [User: 2243.9 ms, System: 373.6 ms]Range (min … max):   420.9 ms … 427.0 ms    10 runsBenchmark 2: eslintTime (mean ± σ):     24.904 s ±  0.624 s    [User: 40.804 s, System: 1.691 s]Range (min … max):   24.292 s … 26.469 s    10 runsSummary'oxc' ran58.73 ± 1.50 times faster than 'eslint'

代码检查

OxLint 默认识别错误、冗余或混乱的代码,优先考虑正确性而不是一些吹毛求疵的规则。它的分类借鉴自 clippy 的分类规则,一旦熟悉,这样的分类非常方便和好用。

使用便捷

OxLint 的设计目标之一是简化配置。它以零配置的方式出现,不需要配置文件,甚至不需要 Node.js。大多数调整可以通过命令行完成,目前还在进行与 ESLint 配置文件的兼容性工作。

增强诊断

OxLint 旨在通过定位根本原因并提供有用的信息来简化对 lint 工具信息的理解。它的报错信息易于读懂,使得开发者能够更轻松地修复问题。

统一规则

尽管 OxLint 目前尚未提供插件系统,但它正在积极整合来自流行插件如 TypeScript、React、Jest、Unicorn、JSX-a11y 和 Import 的规则。未来,OxLint 还计划引入基于 DSL 的插件系统。

结语

OxLint 的发布为开发者带来了更快速的代码检查工具。它的速度之快令人惊叹,特别适用于大型项目和 lint-staged 或 CI 设置。希望 OxLint 给你带来更愉悦的开发体验!


看完本文如果觉得有用,记得点个赞支持,收藏起来说不定哪天就用上啦~

专注前端开发,分享前端相关技术干货,公众号:南城大前端(ID: nanchengfe)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/230528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机图形学头歌合集(题集附解)

目录 CG1-v1.0-点和直线的绘制 第1关&#xff1a;OpenGL点的绘制 第2关&#xff1a;OpenGL简单图形绘制 第3关&#xff1a;OpenGL直线绘制 第4关&#xff1a;0<1直线绘制-dda算法<> 第5关&#xff1a;0<1直线绘制-中点算法<> 第6关&#xff1a;一般直线绘…

数据库增删改查Native SQL

DBCO&#xff1a;检查数据库是否连接 代码&#xff1a; 查询&#xff1a; DATA: gv_dbs TYPE char30 VALUE XXXXXXXX. "数据库连接名称 DATA:gt_ztclaim_2 TYPE TABLE OF ztclaim_2. DATA:gs_ztclaim_2 TYPE ztclaim_2.TRY.EXEC SQL.CONNECT TO :GV_DBSENDEXEC.EXEC SQ…

获取el-disable弹框 中,el-upload对象,并清空列表,始终无法获取到ref的原因

<!-- 添加或修改服务器管理对话框 --><el-dialog :title"title" v-model"open" width"800px" append-to-body><el-form ref"form" :model"form" :rules"rules" label-width"100px">&…

如何用UI自动化测试实现元素定位

随着IT行业的发展&#xff0c;产品愈渐复杂&#xff0c;web端业务及流程更加繁琐&#xff0c;目前UI测试仅是针对单一页面&#xff0c;操作量大。为了满足多页面功能及流程的需求及节省工时&#xff0c;设计了这款UI 自动化测试程序。旨在提供接口&#xff0c;集成到蜗牛自动化…

nacos配置导出

1.查看nacos数据库 mysql -u root -p use nacos show tables; 其中config_info就是存放nacos配置的表&#xff0c;导出该表中的数据就是导出nacos中的配置项 mysqldump -u root -p --single-transaction nacos config_info>config_info.sql 导出后在需要的nacos集群的…

我记不住的那些vim操作2

背景&#xff1a;最近在重新学习vi/vim&#xff0c;发现这个编辑器的用法真是太灵活了&#xff0c;所能掌控的也太多了&#xff0c;这次学习了一些之前没有学习过的内容&#xff0c;之前都是移动鼠标、编辑、复制、粘贴、保存等等(点我查看)&#xff0c;本次将介绍 标签、区域、…

【Python基础】生成器

文章目录 [toc]什么是生成器生成器示例生成器工作流程生成器表达式send()方法和close方法send()方法close()方法 什么是生成器 在Python中&#xff0c;使用生成器可以很方便地支持迭代器协议生成器通过生成器函数产生&#xff0c;通过def定义&#xff0c;但不是通过return返回…

亚马逊云科技re:Invent推出生成式AI技术堆栈及关键服务和工具

亚马逊云科技于29日推出“生成式AI技术堆栈”后&#xff0c;又在30日的re:Invent 2023大会上宣布了一系列支持这一全新堆栈的关键服务和工具。 亚马逊云科技数据和人工智能副总裁Swami Sivasubramanian在主题演讲中&#xff0c;将生成式人工智能与“超新星爆炸”进行了比较&am…

Python计算圆的面积,几何学技法大解析!

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是彭涛&#xff0c;今天为大家分享 Python计算圆的面积&#xff0c;几何学技法大解析&#xff0c;全文3800字&#xff0c;阅读大约15分钟。 在本文中&#xff0c;将深入探讨如何使用 Python 计算圆的面积&…

如何在断线后不重连加入音视频房间

RTC 房间断网后&#xff0c;默认是一直尝试重连的&#xff0c;例如当主播再次联网重连成功后&#xff0c;会自动发布之前在发布的音视频流。针对某些不想断网后重新加入连接的场景&#xff0c;需要如下配置&#xff1a; 1、配置断开后不去重连&#xff08;这种情况也会重连 4 次…

css画饼图

<template slot-scope"scope"> <div class"pie" :style"{--p: scope.row.rate}" style"--p:10;--b:10px;--c:#FFAB79;"> <!-- --p&#xff1a;这个变量应该包含百分比值作为一个数字&#xff08;不带%符号&#xff09;…

深入理解Python装饰器:丰富函数功能的强大工具

导语&#xff1a;装饰器是Python非常强大的功能之一&#xff0c;它们允许程序员修改或增强已有函数或方法的行为&#xff0c;而无需更改其本身的代码&#xff0c;这篇文章&#xff0c;让我们一起来看看&#xff08;我自己这里理解的也不是很透彻&#xff09; ----------更正---…

ansible远程操作主机功能和自动化运维

ansible 两个功能&#xff1a;1、远程操作主机功能 2、自动化运维&#xff08;play 剧本 yaml&#xff09; 简述&#xff1a; 是基于python开发的配置管理和应用部署工具。在自动化运维中&#xff0c;现在是异军突起。 Asible能批量配置&#xff0c;部署&#xff0c;管理上千…

162. 寻找峰值 --力扣 --JAVA

题目 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums&#xff0c;找到峰值元素并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] nums[n] -∞ 。 你必须实现时间复杂度为 …

【从零开始学习JAVA集合 | 第一篇】深入解读HashMap源码(含面试题)

目录 目录 前言&#xff1a; HashMap简介&#xff1a; HashMap的常用常量和变量&#xff1a; HashMap的重要考点&#xff1a; HashMap的存储过程&#xff1a; HashMap的扩容过程&#xff1a; HashMap的初始化&#xff1a; 常见面试题&#xff1a; 总结&#xff1a;…

RDB 和 AOF 的实现原理和优缺点

RDB 和 AOF 的实现原理和优缺点 RDB和AOF是Redis的两个持久化方式。 RDB RDB(Redis DataBase)是Redis的一种数据持久化方式&#xff0c;即快照方式。Redis通过fork出一个子进程来将内存中的数据写入磁盘。在保存快照期间&#xff0c;Redis主进程会被阻塞。 RDB的优点在于&a…

最大公约数(greatest common divisor, gcd)与最小公倍数(least common multiple, lcm)。

不严谨但好理解直观的说法&#xff1a; 1.公约数和最大公约数 几个数公有的约数,叫做这几个数的公约数&#xff1b;其中最大的一个,叫做这几个数的最大公约数. 例如&#xff1a;12的约数有&#xff1a;1,2,3,4,6,12&#xff1b; 18的约数有&#xff1a;1,2,3,6,9,18. 12和18的…

js操作相关方法

1.split split 是 JavaScript 字符串对象的一个方法&#xff0c;用于将字符串分割成子字符串&#xff0c;并返回一个由这些子字符串组成的数组。你可以使用 split 方法根据指定的分隔符将字符串分割成多个部分。 以下是 split 方法的示例用法,使用 split 方法将字符串 str 根…

AI摄影绘画与PS优化:重塑数字艺术的未来

文章目录 《AI摄影绘画与PS优化从入门到精通》内容简介作者简介楚天 目录前言/序言 在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的各个领域&#xff0c;包括艺术创作。AI摄影绘画和Photoshop&#xff08;PS&#xff09;优化是这个领…

<sa8650>sa8650 qcxser-之-串行解串器GPIO的map

<sa8650>sa8650 qcxser-之-串行解串器GPIO输入输出 <sa8650>sa8650 qcxser-之-串行解串器GPIO的map <sa8650>sa8650 qcxser-之-串行解串器ERRB的map <sa8650>sa8650 qcxser-之-串行解串器ADC使用 <sa8650>sa8650 qcxser-之-串行解串器GPIO的map 一 串行解串器GPIO的m…