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