Skip to content

Oxlint Beta

Эта заметка анонсирует бета-релиз Oxlint. Oxlint уже достиг стабильной версии v1.0! См. анонс Oxlint v1.0 Stable про актуальные возможности и улучшения.

Мы рады объявить, что Oxlint вышел в бета-релиз после более года работы сообщества!

Это важный шаг в полноте возможностей, производительности и стабильности.

Как пользоваться

На этом этапе Oxlint можно полностью использовать вместо ESLint в проектах малого и среднего размера.

Для крупных проектов советуем отключать правила ESLint через eslint-plugin-oxlint и запускать Oxlint перед ESLint локально или в CI для более быстрой обратной связи.

Проверить Oxlint в кодовой базе можно любым менеджером пакетов из корня проекта:

sh
$ npx oxlint@latest
sh
$ pnpm dlx oxlint@latest
sh
$ yarn dlx oxlint@latest
sh
$ bunx oxlint@latest
sh
$ deno run npm:oxlint@latest

Подробнее об использовании Oxlint и интеграции с проектом или редактором см. руководство по установке.

Главные новинки после GA

  • Значительный прирост производительности — до двух раз быстрее предыдущего релиза
  • Более 500 правил из коробки, без дополнительной установки
  • Многие правила из плагинов typescript, unicorn, react, react-perf, nextjs, import, jsdoc, jsx-a11y, node, promise, jest, vitest реализованы полностью.
  • Конфигурация через файлы .oxlintrc.json, включая вложенные конфиги, extends для общих настроек, overrides для конкретных файлов и другое.
  • Линтинг содержимого <script> в .astro, .svelte и .vue без дополнительной настройки.
  • Автоисправления и предложения для файлов.

Больше правил, выше производительность

Мы стремимся к полноте возможностей Oxlint, поддерживая многие распространённые правила и плагины ESLint, и одновременно делаем Oxlint заметно быстрее.

В первом релизе общей доступности (GA) Oxlint было 205 правил всего, из них 70 включены по умолчанию. В бете уже 502 правила, из них 99 по умолчанию (+41% к числу правил по умолчанию).

Тип правилаКоличество (GA)Количество (beta)Прирост
По умолчанию7099+29 правил
Correctness88173+88 правил
Performance09+9 правил
Restrictions1564+49 правил
Pedantic4379+36 правил
Style38137+99 правил
Suspicious728+21 правило
Всего правил205502+297 правил

Несмотря на новые правила по умолчанию, Oxlint сейчас быстрее, чем когда-либо. Ниже бенчмарки на популярных репозиториях:

РепозиторийЧисло файловВремя линта (GA)Время линта (beta)Ускорение
elastic/kibana68,5916.02s3.11s1.94x
microsoft/vscode5,7031.697s0.792s2.14x
vitest-dev/vitest1,732105ms50ms2.1x
vuejs/core1,063217ms89ms2.44x

Дорожная карта

Одна из самых частых просьб — поддержка существующих пользовательских плагинов ESLint. Мы активно готовим основу для этой возможности и для быстрых плагинов линтера на JavaScript. Надеемся включить её в следующий мажорный релиз и скорее поделиться деталями.

Также планируем улучшать интеграции с IDE и редакторами: VSCode, Zed, coc.nvim и плагины IntelliJ.

Благодарности

Бета Oxlint невозможна без более чем 200 контрибьюторов проекта.

Особая благодарность:

  • @cam314, @mysteryven и @shulaoda за сложные правила линтера, тесты и постоянные улучшения.
  • @Sysix за поддержку eslint-plugin-oxlint.
  • @DonIsaac за конфигурацию, документацию и сайт, а также представление Oxc на SquiggleConf 2024.
  • @leaysgur за парсер RegExp и плагин JSDoc.
  • @u9g и @rzvxa за анализ графа потока управления.
  • @branchseer за runtime многопроектного анализа.
  • @camchenry за вложенную конфигурацию.