Skip to content

Миграция старых конфигов ​

lintsync migrate <tool> --to <format> конвертирует старый конфиг в новый формат или расположение. Исходный файл никогда не удаляется, а существующая цель никогда не перезаписывается — обе проверки выполняются до записи чего-либо.

bash
lintsync migrate <tool> --to <format> [options]
bash
lintsync migrate eslint --to flat      # .eslintrc.* -> eslint.config.mjs
lintsync migrate prettier --to yaml    # .prettierrc.json -> .prettierrc.yaml
lintsync migrate stylelint --to json

Каждый инструмент поддерживает только тот целевой формат(ы), который для него реально имеет смысл:

  • eslint — только --to flat (цель: eslint.config.mjs).
  • prettier / stylelint — только --to json, --to yaml или --to js (не flat — это концепция, специфичная для ESLint).

Запрос неподдерживаемой комбинации инструмента и формата — обычная ошибка.

Миграция ESLint в flat config ​

lintsync migrate eslint --to flat — переносится только rules — в обоих форматах это ровно одна и та же структура. Всё остальное, найденное в старом файле (extends, plugins, env, parserOptions, globals, overrides, ...), помечается как требующее ручной проверки вместо того, чтобы угадываться, поскольку у каждого из этих полей есть реальные смысловые отличия между старым и flat-конфигом.

Конвертация форматов Prettier и Stylelint ​

lintsync migrate prettier --to <format> / lintsync migrate stylelint --to <format> — формат-в-формат (json/yaml/js) — эти конфиги представляют собой обычные данные, поэтому каждый ключ переносится без изменений.

Обнаружение старых файлов ​

Старые исходники ищутся по стандартным именам файлов, в этом порядке (побеждает первое совпадение):

ИнструментПроверяемые имена файлов, по порядку
ESLint.eslintrc.json, .eslintrc.yaml, .eslintrc.yml, .eslintrc.js, .eslintrc.cjs
Prettier.prettierrc.json, .prettierrc.yaml, .prettierrc.yml, .prettierrc.js, .prettierrc.cjs, prettier.config.js
Stylelint.stylelintrc.json, .stylelintrc.yaml, .stylelintrc.yml, .stylelintrc.js

Голый .eslintrc/.prettierrc без расширения автоматически не определяется — его формат можно узнать только по содержимому файла, а этим migrate не занимается.

Опции ​

--to <format> ​

Обязателен. Целевой формат — flat для ESLint, либо json/yaml/js для Prettier/Stylelint.

--cwd <path> ​

Директория проекта. По умолчанию — текущая директория.

--json ​

Машиночитаемый вывод.

--quiet ​

Подавить вывод при успехе.

Пример вывода:

✓ .eslintrc.json → eslint.config.mjs
  migrated: rules
  needs manual review: extends, env