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-зависимость и скрипты:
pnpm add -D oxlint{
"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>.
Детали — матрица совместимости.
Возможности
- Нативные плагины: широкое покрытие, 756 встроенных правил без огромного дерева JS-зависимостей.
- Автофиксы.
- Игнор файлов.
- Инлайн-игноры.
- Мультифайловый анализ, например no-cycle.
- Type-aware.
- JS-плагины (alpha).
Кто уже использует
В продакшене, среди прочих:
- elastic/kibana
- getsentry/sentry-javascript
- renovatebot/renovate
- preactjs/preact
- date-fns/date-fns
- outline/outline
- PostHog/posthog
- actualbudget/actual
- cloudflare/agents