Skip to content

Проекты и пакетный режим ​

Реестр известных проектов позволяет sync/status пройтись по всем сразу через --all, вместо одного проекта за раз через --cwd.

Реестр проектов ​

lintsync projects add/remove/list — управление глобальным реестром.

bash
lintsync projects add vuecraft ~/dev/vuecraft --tags type:site
lintsync projects add use-viewport ~/dev/npm/use-viewport --tags type:npm-package
lintsync projects list
lintsync projects list --tag type:site
lintsync projects remove vuecraft

Путь проекта хранится ровно как задан (~/dev/vuecraft сохраняется буквально, вместе с тильдой) и разворачивается в реальный путь файловой системы только в момент реальной работы с проектом — во время sync --all/status --all, а не при добавлении. Регистрация уже занятого имени — ошибка. Ни одна из подкоманд projects не принимает --cwd — сам реестр привязан к машине, а не к какой-то конкретной директории проекта.

add <name> <path> ​

--tags <tags> ​

Теги проекта через запятую, например --tags type:site,team:frontend.

--registry <path> ​

Путь к реестру проектов, если не дефолтный.

--json ​

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

remove <name> ​

--registry <path> ​

Путь к реестру проектов, если не дефолтный.

--json ​

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

list ​

--tag <tag> ​

Ограничить список проектами с этим тегом.

--registry <path> ​

Путь к реестру проектов, если не дефолтный.

--json ​

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

Пакетный режим ​

Передайте --all в sync или status вместо --cwd, чтобы пройтись по всем зарегистрированным проектам:

bash
lintsync sync --all                    # все зарегистрированные проекты
lintsync sync --all --tag type:site    # только проекты с тегом type:site
lintsync status --all

--tag/--registry что-то делают только вместе с --all — передача любого из них без --all молча ничего не даёт, это не ошибка. Пакетные запуски всегда неинтерактивны: конфликт фиксируется в отчёте по каждому проекту, TUI никогда не открывается.

Итоговый код возврата — 0, если все проекты завершились успешно, тот же общий код, если все провалились одинаково, или 3, если проекты разошлись в результате — так CI-скрипт может отличить «единообразный результат» от «нужно посмотреть JSON», не разбирая результат каждого проекта по отдельности.

Глобальный конфиг и хранилище ​

Два файла хранят состояние, общее для всей машины, а не для конкретного проекта — реестр проектов и локально сохранённые пресеты. По умолчанию оба лежат в стандартной для ОС директории конфигов пользователя, не внутри самого LintSync и не в текущем проекте:

ОСДиректория по умолчанию
Windows%APPDATA%\lintsync\Config
macOS~/Library/Preferences/lintsync
Linux$XDG_CONFIG_HOME/lintsync (обычно ~/.config/lintsync)

Внутри: projects.json (реестр проектов), presets.json (локально сохранённые пресеты) и config.json — собственный основной конфиг LintSync, который редактируется вручную:

json
{
  "presetsPath": "/somewhere/else/presets.json",
  "registryPath": "/somewhere/else/projects.json"
}

Оба поля опциональны; задавайте только то, что хотите перенести. Сам config.json ищется в таком порядке: флаг --config <path>, переменная окружения LINTSYNC_CONFIG, затем стандартная для ОС директория выше. --config работает в любой позиции командной строки — до или после имени подкоманды.

Приоритет того, где реально лежат projects.json/presets.json, от высшего к низшему: собственный флаг --registry/--presets команды для этого конкретного запуска → registryPath/presetsPath в config.json → стандартное для ОС расположение. Отсутствующий config.json (или отсутствующий/нечитаемый projects.json/presets.json) — не ошибка, LintSync просто стартует с пустого/дефолтного состояния.