На проекте разрешили попробовать сменить ESLint на Oxlint. После первого запуска я выпал, даже не понял, что программа отработала 😄 Настолько съело быстро, что не замечаешь, т.е. нажимаешь Enter и уже сразу результат. Ты вообще не ждешь. 😎
Короче, не будем пробовать менять, будем полностью менять на о-экс-линт без попробовать. Зачем нужен еслинт теперь? Каждый коммит - медленная проверка, линтер в ci/cd - медленная проверка. У нас теперь все будет летать.
Сколько выполняется линтинг на eslint? Запускаю через time:
Запускаю прикрученный oxlint:
Офигеть не встать. У меня получилось в 180 раз быстрее.
Поддерживает из коробки Typescript. Куча встроенных правил уже есть, кучу хрен знает каких плагинов добавлять не нужно. Можно комментировать строки по аналогии с еслинтом. Разрешить консоль на следующей строке:
Изучаю его дальше, но наши челы уже согласны переходить. Но пока заметил серьезный минус - нет стилистических правил. Например, правила 'no-multi-spaces' из классического еслинта нет, нужно каким-то кривым образом прикручивать, а нам это правило нужно. Есть рекомендация использовать в oxlint еслинтовый пакет @stylistic/eslint-plugin, но это уже похоже не бред. И поставить его нельзя отдельно нормально, в peer dependencies сидит eslint. 😄 С этим засада, короче.
Я поставил @stylistic/eslint-plugin и отдельно eslint, подключил правило '@stylistic/no-multi-spaces' в oxlint - время проверки выросло:
Подключил все правила из @stylistic/eslint-plugin (примерно 80 штук), стало выполняться за 1 секунду.
Есть ещё Oxfmt для форматирования. Им теоретически можно решить проблему стилизации, но это в первую очередь принудительный форматтер, а не линтер, а нам нужен именно линтер. Форматтер не всегда хорошая штука.
Короче, не будем пробовать менять, будем полностью менять на о-экс-линт без попробовать. Зачем нужен еслинт теперь? Каждый коммит - медленная проверка, линтер в ci/cd - медленная проверка. У нас теперь все будет летать.
Сколько выполняется линтинг на eslint? Запускаю через time:
time npm run lint
real 0m10,108s user 0m12,620s sys 0m1,264sВыполняется 12-13 секунд. Секунд!!! Это 12000-13000 мс.
Запускаю прикрученный oxlint:
npm run lint2
Found 0 warnings and 0 errors. Finished in 67ms on 1044 files with 57 rules using 16 threads.
Офигеть не встать. У меня получилось в 180 раз быстрее.
Поддерживает из коробки Typescript. Куча встроенных правил уже есть, кучу хрен знает каких плагинов добавлять не нужно. Можно комментировать строки по аналогии с еслинтом. Разрешить консоль на следующей строке:
// oxlint-disable-next-line no-console
Изучаю его дальше, но наши челы уже согласны переходить. Но пока заметил серьезный минус - нет стилистических правил. Например, правила 'no-multi-spaces' из классического еслинта нет, нужно каким-то кривым образом прикручивать, а нам это правило нужно. Есть рекомендация использовать в oxlint еслинтовый пакет @stylistic/eslint-plugin, но это уже похоже не бред. И поставить его нельзя отдельно нормально, в peer dependencies сидит eslint. 😄 С этим засада, короче.
Я поставил @stylistic/eslint-plugin и отдельно eslint, подключил правило '@stylistic/no-multi-spaces' в oxlint - время проверки выросло:
Found 0 warnings and 1 error. Finished in 495ms on 1044 files with 58 rules using 16 threads.Уже 495 мс - это из-за жса.
Подключил все правила из @stylistic/eslint-plugin (примерно 80 штук), стало выполняться за 1 секунду.
Есть ещё Oxfmt для форматирования. Им теоретически можно решить проблему стилизации, но это в первую очередь принудительный форматтер, а не линтер, а нам нужен именно линтер. Форматтер не всегда хорошая штука.


