Skip to content

Пресеты ​

Пресет — это набор правил для каждого инструмента, плюс зависимости для установки и ключи, которые он считает своими (managedKeys). Пресеты живут внутри самого LintSync — встроенные, либо собранные один раз интерактивно и сохранённые локально — никогда как отдельные npm-пакеты, поэтому npm update -g lintsync — это и есть способ получить обновления пресетов.

Встроенные пресеты ​

Сегодня их четыре, и все четыре разделяют один и тот же базовый стиль Prettier: без точек с запятой, одинарные кавычки, trailingComma: 'all', printWidth: 100, tabWidth: 2.

vue-app ​

ESLint (flat config + @eslint/js + eslint-plugin-vue + typescript-eslint) + Prettier + Stylelint, для Vue/Nuxt-приложений. Блоки <script lang="ts">/<script setup lang="ts"> в .vue-файлах подключены напрямую к парсеру TypeScript через vue-eslint-parser, а не через @vue/eslint-config-typescript — хелпер withVueTs() этого пакета возвращает Promise, что не укладывается в обычный массив конфига. Stylelint расширяет stylelint-config-standard-scss и stylelint-config-recommended-vue.

react-app ​

ESLint (flat config + @eslint/js + eslint-plugin-react + eslint-plugin-react-hooks + typescript-eslint) + Prettier + Stylelint, для React-приложений. eslint/@eslint/js здесь зафиксированы на ^9 — потому что eslint-plugin-react ещё не выпустил поддержку ESLint 10.

npm-lib ​

ESLint (flat config + @eslint/js + typescript-eslint) + Prettier, для библиотечных npm-пакетов без CSS — этот пресет вообще не определяет инструмент Stylelint, поэтому init никогда не предлагает его установить. Строже остальных пресетов: no-console и @typescript-eslint/no-unused-vars/no-explicit-any — ошибки, а не предупреждения, и добавлено @typescript-eslint/explicit-module-boundary-types сверху.

base ​

ESLint (flat config + @eslint/js + typescript-eslint) + Prettier + Stylelint (stylelint-config-standard) с мягкими, общими дефолтами, не привязанными к конкретному стеку. Это то, что использует путь «выбрать инструменты по отдельности» у интерактивного init.


Все четыре включают собственный recommended-конфиг @eslint/js наряду с recommended от typescript-eslint — recommended-конфиг typescript-eslint только отключает ту часть правил @eslint/js, которую компилятор TypeScript и так проверяет лучше, но не заменяет их, поэтому реальные правила корректности без пересечения с TS (no-fallthrough, no-empty, array-callback-return, ...) всё равно требуют присутствия @eslint/js.

Поверх этого можно собрать собственный пресет интерактивно (init → «Собрать и сохранить новый пресет» — см. Init) и сохранить его локально. С этого момента он ведёт себя ровно как встроенный: то же резолвение по --preset <name>, тот же список в выборе пресета, то же поведение манифеста/sync.

Список сохранённых пресетов ​

lintsync presets list — список сохранённых локально пресетов.

bash
lintsync presets list

--presets <path> ​

Путь к локальному хранилищу пресетов, если не дефолтный — см. Глобальный конфиг и хранилище.

--json ​

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

Удаление сохранённого пресета ​

lintsync presets remove <name> удаляет сохранённый локально пресет.

bash
lintsync presets remove my-team

--presets <path> ​

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

--json ​

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