Skip to content

build(lint): перевести бойлерплейт с eslint на oxlint и oxfmt - #7

Merged
mokevnin merged 1 commit into
mainfrom
lint-oxlint-oxfmt
Aug 14, 2026
Merged

mokevnin merged 1 commit into
mainfrom
lint-oxlint-oxfmt

Conversation

@mokevnin

Copy link
Copy Markdown
Contributor

Зачем

Продолжение nodejs-package#84: канон стиля JS и TS в hexlet-exercise-kit это oxlint (линтер) и oxfmt (форматтер), а этот шаблон ставил eslint 10 с typescript-eslint и @stylistic.

Повод тот же, FEEDBACK-187: студенты настраивают свои пакеты по шаблонам, и расхождение разъезжается по их репозиториям.

Что изменилось

  • eslint.config.ts удалён, eslint, typescript-eslint, @stylistic, globals и jiti убраны из devDependencies.
  • Добавлены oxlint и oxfmt, конфиг .oxlintrc.json взят из кита: включены все плагины, категория correctness как ошибка.
  • oxlint не смотрит типы, поэтому type-aware правила typescript-eslint (recommendedTypeChecked, stylisticTypeChecked) заменены прогоном tsc: цель make typecheck и шаг в воркфлоу. До этого tsc в CI не запускался вовсе, только make lint и make test-coverage, то есть проверка типов из CI пропадала бы совсем.
  • В .oxlintrc.json один override: заглушка types/index.d.ts состоит из одного комментария, а unicorn/no-empty-file считает такой файл пустым.
  • Исходники переформатированы дефолтом oxfmt (двойные кавычки, точки с запятой). Ручных правок стиля нет.

Заодно починено

make start и make develop зовут npm-скрипты start и start:dev, которых в package.json не было: обе команды падали с npm error. Скрипт exec делал то же, что теперь start:dev, и убран как дубль. Точка входа сборки это dist/src/index.js, потому что tsc собирает по include: ["**/*"] со всем деревом.

Проверено

Локально зелёные make lint, make typecheck, make test, make test-coverage (покрытие 100%), make build, make start, make develop.

🤖 Generated with Claude Code

…oxfmt

Тот же переход, что в nodejs-package: канон стиля js и ts в ките это oxlint
плюс oxfmt, а шаблон ставил eslint 10 с typescript-eslint и stylistic.

oxlint типы не смотрит, поэтому type-aware правила typescript-eslint заменены
прогоном tsc: цель typecheck и шаг в воркфлоу. Раньше tsc в CI не запускался
вовсе, ошибки типов ловились только линтером.

В .oxlintrc.json один override: заглушка types/index.d.ts состоит из одного
комментария, и unicorn/no-empty-file считает такой файл пустым.

Заодно починены make start и make develop: они зовут npm-скрипты start и
start:dev, которых в package.json не было, то есть обе команды падали. Скрипт
exec делал то же, что теперь start:dev, и убран как дубль. Точка входа в сборке
это dist/src/index.js: tsc собирает по include со всем деревом.
@mokevnin
mokevnin merged commit 3c09303 into main Aug 14, 2026
1 check passed
@mokevnin
mokevnin deleted the lint-oxlint-oxfmt branch August 14, 2026 17:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant