Skip to content

Oxlint

Oxlint (/oʊ-ɛks-lɪnt/) — высокопроизводительный линтер для JavaScript и TypeScript на стеке компилятора Oxc.

Расчёт на масштаб

Oxlint создан для больших репозиториев и CI: архитектура убирает ограничения, которые тормозят ESLint.

По бенчмаркам Oxlint примерно в 50–100 раз быстрее ESLint.

Умолчания про корректность

Из коробки полезен и без шумных правил: по умолчанию упор на сигнал про ошибки, небезопасный или бесполезный код — можно подключать без лишнего шума.

Остальные правила включаются по мере необходимости.

Большой набор правил и совместимость

Чтобы упростить миграцию, в Oxlint более чем 755 правил из тех плагинов, которые уже используют команды:

  • правила ядра ESLint;
  • правила TypeScript (включая type-aware);
  • популярные плагины: React, Jest, Vitest, Import, Unicorn, jsx-a11y;
  • пользовательские JS-плагины (alpha), совместимые с экосистемой ESLint.

Покрытие упрощает переезд без потери правил. Есть инструменты, чтобы перенести конфиг ESLint целиком.

Линтинг с информацией о типах

Oxlint использует нативный порт компилятора TypeScript на Go (tsgo, TypeScript 7): полная совместимость и то же поведение типов, что у самого TypeScript.

Это нужно для проверок вроде «висящих» промисов.

У Biome свой вывод типов без компилятора TS; по их словам покрытие ещё растёт.

Подробнее: type-aware линтинг.

Многофайловый анализ

Поддержка анализа на уровне проекта — полноценная функция.

При включении Oxlint строит граф модулей и совместно использует парсинг и резолв для правил; улучшаются проверки с импортами между файлами и обходит «просадку» производительности правил вроде import/no-cycle в ESLint.

См. мультифайловый анализ.

Диагностики для людей и для ИИ

Сообщения читаются человеком и содержат структуру для инструментов: точные span, контекст, ссылки на документацию — это помогает ИИ понимать проблему и применять фиксы.

Надёжность

Oxlint рассчитан на сценарии, где падать нельзя.

Крэши — приоритетный баг. Регрессии скорости — тоже баг.

Стабильность и пропускная способность важны для CI и больших монореп.

Быстрый старт

Рекомендуется dev-зависимость и скрипты:

sh
pnpm add -D oxlint
package.json
json
{
  "scripts": {
    "lint": "oxlint",
    "lint:fix": "oxlint --fix"
  }
}

Дальше:

Сценарии внедрения

TIP

При миграции с ESLint см. страницу «Миграция с ESLint».

  • Заменить ESLint (часто оптимально). Oxlint как основной линтер; конфиг можно перенести через @oxlint/migrate.
  • Постепенно. Сначала Oxlint, затем ESLint с отключением пересекающихся правил — CI остаётся быстрым на переходный период.
    • eslint-plugin-oxlint отключает дубли при параллельном запуске.
    • @oxlint/migrate полезен и здесь.

Что поддерживается

  • JavaScript и TypeScript (.js, .mjs, .cjs, .ts, .mts, .cts);
  • JSX и TSX;
  • Vue, Svelte, Astro — линтится содержимое <script>.

Детали — матрица совместимости.

Возможности

Кто уже использует

В продакшене, среди прочих:

Миграция

Справка