Oxlint — более быстрая альтернатива ESLint

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Друзья, всем привет! Меня зовут Игорь Карелин, я frontend-разработчик в компании Домклик. Недавно стал общедоступен новый линтер Oxlint, основанный на языке программирования Rust, и многие эксперты высоко оценили его. Какие преимущества Oxlint предоставляет по сравнению со своим предшественником ESLint?

Компилятор Oxc

Компилятор JavaScript Oxidation (Oxc) — это набор высокопроизводительных инструментов для языка JavaScript, написанных на Rust. Акцент сделан на создании основных инструментов компилятора для JavaScript: парсера, линтера, форматтера, транспилятора, минификатора и преобразователя.

Парсер демонстрирует в два раза более высокую скорость по сравнению с парсером swc в рамках тестирования, которое включает анализ файлов .js(x) и .ts(x). Он успешно проходит все тесты парсера Test262 и практически все тесты, используемые в Babel и TypeScript.

Для резолвера все параметры настроены в соответствии с webpack/enhanced-resolve. Эффективность в 28 раз выше, чем у webpack/enhanced-resolve при проведении соответствующего теста.

Node v18.17.1
┌─────────┬────────────────────┬────────────┬─────────┐
│ (index) │        name        │    mean    │ compare │
├─────────┼────────────────────┼────────────┼─────────┤
│    0    │ 'enhanced-resolve' │ '0.3553ms' │ '28.01' │
│    1    │   'oxc-resolver'   │ '0.0127ms' │ '1.00'  │
└─────────┴────────────────────┴────────────┴─────────┘

Сравнение Oxlint и ESLint

Производительность Oxlint стала объектом оживлённых обсуждений в сообществе из-за её впечатляющей эффективности.

Отзывы

Ссылка на оригинал отзывов

Конечно, помимо высокой производительности Oxlint обладает множеством особенностей, которые отличают его от старшего аналога — ESLint. В дальнейшем мы немного сравним его с Oxlint. ESLint (ECMAScript Lint) — это инструмент для статического анализа кода на JavaScript. Его история началась в 2013 году, когда Николас С. Закас (Nicholas C. Zakas) создал проект по созданию гибкого и настраиваемого линтера для JavaScript, который может быть легко интегрирован в различные проекты. В некоторых случаях использование ESLint может повлечь за собой увеличение времени компиляции и замедление работы IDE, особенно при обработке больших проектов. Это связано с интенсивным статическим анализом кода.

Конфигурирование новых кодовых баз на JavaScript/TypeScript становится всё более сложным процессом. Возникает высокий риск несовместимости между используемыми инструментами, что может удлинить настройку проекта. По этой причине был создан Oxlint которому не нужна предварительная настройка; даже использование Node.js не является обязательным условием. Большинство настроек можно выполнить через командную строку. Oxlint по умолчанию обнаруживает ошибочный, избыточный или запутанный код, отдавая приоритет корректности перед избыточными правилами (помеченными как perf, suspicious, pedantic или style), которые по умолчанию отключены.

Производительность Oxlint превышает производительность ESLint в 50-100 раз с возможностью масштабирования в зависимости от количества ядер процессора (тест). Это обусловлено тем, что Oxlint был специально создан с использованием Rust и параллельной обработки в качестве ключевых элементов повышения эффективности.

Oxlint содержит более 200 правил, включая правила из ESLint, TypeScript, eslint-plugin-react и .eslint-plugin-jest, eslint-plugin-unicorn, eslint-plugin-jsx-a11y. Список постоянно растёт. Линтер поддерживает файл .eslintignore и предоставляет функцию отключения правил с использованием комментариев ESLint.

Для тестирования Oxlint в вашем проекте на JavaScript/TypeScript выполните следующую команду в корневой директории вашего репозитория:

$ npx oxlint@latest

Чтение сообщений линтера может оказаться нетривиальной задачей. Oxlint стремится упростить эту задачу, выявляя основные причины и предоставляя полезные сообщения, устраняя необходимость длительного чтения документации по правилам и экономя драгоценное время.

Кроме достоинств у Oxlint также есть свои недостатки.

Недостатки Oxlint

В настоящее время Oxlint не является полноценной заменой ESLint; его роль заключается в улучшении, когда низкая производительность ESLint становится узким местом в вашем рабочем процессе.

На текущий момент Oxlint ещё не имеет системы плагинов, однако в дальнейшем обещают добавить правила из известных плагинов, таких как TypeScript, React, Jest, Unicorn, JSX-a11y и Import.

Вывод

Oxlint представляет собой значительный шаг вперёд в области статического анализа кода на JavaScript/TypeScript. Несмотря на ряд преимуществ, включая высокую производительность и активное внедрение правил из популярных плагинов, стоит учитывать, что у Oxlint также есть свои ограничения и недостатки.

Эффективное использование Oxlint зависит от особенностей проекта и индивидуальных потребностей разработчиков. Я рекомендую внимательно оценить преимущества и недостатки инструмента в контексте конкретного проекта, прежде чем принимать решение о его использовании.

Благодарю вас за внимание и интерес к статье! Надеюсь, что она была для вас полезной и информативной. Если у вас есть какие-либо вопросы или комментарии, не стесняйтесь поделиться ими. Ваше внимание и время ценны для меня. Спасибо за прочтение!

Источник: https://habr.com/ru/companies/domclick/articles/783150/


Интересные статьи

Интересные статьи

Привет, Хабр! На связи команда разработчиков Magnus Tech. В этом посте мы расскажем, как дошли до идеи отказа от использования радара при фотовидеофиксации нарушений. А также о том, как: подружили кам...
Исследование влияния создания даже крошечных объектов на производительность и сборку мусора.В этой статье рассматривается бенчмарк передачи событий по TCP/IP со скоростью 4 миллиарда событий в ми...
Три человека из четырёх считают рекламу, защищающую конфиденциальность, и возможность контролировать количество рекламы, которую они видят в день, более привлекательными. В деньгах тоже есть существен...
Часть 1 Даже имея доступ к конфиденциальным и секретным документам польза будет равна почти нулю, если у шпиона не будет возможности сделать их копии. Можно положиться на память и запомнить мате...
Доброго времени суток, сегодня я хочу рассказать об устройстве которое я разработал и собрал. Введение Столы с возможностью изменения высоты находятся на рынке уже давно и существует очен...