Oxlint Beta
Эта заметка анонсирует бета-релиз Oxlint. Oxlint уже достиг стабильной версии v1.0! См. анонс Oxlint v1.0 Stable про актуальные возможности и улучшения.
Мы рады объявить, что Oxlint вышел в бета-релиз после более года работы сообщества!
Это важный шаг в полноте возможностей, производительности и стабильности.
Как пользоваться
На этом этапе Oxlint можно полностью использовать вместо ESLint в проектах малого и среднего размера.
Для крупных проектов советуем отключать правила ESLint через eslint-plugin-oxlint и запускать Oxlint перед ESLint локально или в CI для более быстрой обратной связи.
Проверить Oxlint в кодовой базе можно любым менеджером пакетов из корня проекта:
$ npx oxlint@latest$ pnpm dlx oxlint@latest$ yarn dlx oxlint@latest$ bunx oxlint@latest$ 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) | Прирост |
|---|---|---|---|
| По умолчанию | 70 | 99 | +29 правил |
| Correctness | 88 | 173 | +88 правил |
| Performance | 0 | 9 | +9 правил |
| Restrictions | 15 | 64 | +49 правил |
| Pedantic | 43 | 79 | +36 правил |
| Style | 38 | 137 | +99 правил |
| Suspicious | 7 | 28 | +21 правило |
| Всего правил | 205 | 502 | +297 правил |
Несмотря на новые правила по умолчанию, Oxlint сейчас быстрее, чем когда-либо. Ниже бенчмарки на популярных репозиториях:
| Репозиторий | Число файлов | Время линта (GA) | Время линта (beta) | Ускорение |
|---|---|---|---|---|
elastic/kibana | 68,591 | 6.02s | 3.11s | 1.94x |
microsoft/vscode | 5,703 | 1.697s | 0.792s | 2.14x |
vitest-dev/vitest | 1,732 | 105ms | 50ms | 2.1x |
vuejs/core | 1,063 | 217ms | 89ms | 2.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 за вложенную конфигурацию.

