sv check
sv check обнаруживает ошибки и предупреждения в вашем проекте, такие как:
- Неиспользуемый CSS
- Подсказки по доступности
- Ошибки компилятора JavaScript/TypeScript
Требуется Node.js версии 16 или выше.
Установка
Заголовок раздела «Установка»Необходимо установить пакет svelte-check в проекте:
npm i -D svelte-checkpnpm add -D svelte-checkyarn add -D svelte-checkИспользование
Заголовок раздела «Использование»npx sv checkpnpx sv checkyarn dlx sv checkПараметры
Заголовок раздела «Параметры»--workspace <путь>
Заголовок раздела «--workspace <путь>»Путь к рабочей области. Проверяются все поддиректории, кроме node_modules и указанных в --ignore.
--output <формат>
Заголовок раздела «--output <формат>»Формат вывода ошибок и предупреждений. См. Машиночитаемый вывод.
humanhuman-verbosemachinemachine-verbose
--watch
Заголовок раздела «--watch»Не завершать процесс и отслеживать изменения.
--preserveWatchOutput
Заголовок раздела «--preserveWatchOutput»Не очищать экран в режиме watch.
--tsconfig <путь>
Заголовок раздела «--tsconfig <путь>»Путь к файлу tsconfig или jsconfig. Может быть относительным (относительно рабочей директории) или абсолютным. При использовании проверяются только файлы, соответствующие шаблонам files/include/exclude в конфиге. Также включается проверка ошибок в файлах TypeScript/JavaScript. Если не указано, производится поиск jsconfig/tsconfig.json в родительских директориях.
--no-tsconfig
Заголовок раздела «--no-tsconfig»Используйте, если нужно проверять только Svelte-файлы в текущей директории (файлы .js/.ts проверяться не будут).
--ignore <пути>
Заголовок раздела «--ignore <пути>»Файлы/директории для игнорирования (относительно корневой директории рабочей области). Пути указываются через запятую в кавычках. Пример:
npx sv check --ignore "dist,build"Действует только с --no-tsconfig. При использовании с --tsconfig влияет только на отслеживаемые файлы, но не на диагностируемые (которые определяются tsconfig.json).
--fail-on-warnings
Заголовок раздела «--fail-on-warnings»Завершать процесс с кодом ошибки при наличии предупреждений.
--compiler-warnings <предупреждения>
Заголовок раздела «--compiler-warnings <предупреждения>»Список в формате код:действие в кавычках, где код — код предупреждения компилятора, а действие — ignore или error:
npx sv check --compiler-warnings "css_unused_selector:ignore,a11y_missing_attribute:error"--diagnostic-sources <источники>
Заголовок раздела «--diagnostic-sources <источники>»Список источников диагностики через запятую в кавычках. По умолчанию активны все:
js(включая TypeScript)sveltecss
Пример:
npx sv check --diagnostic-sources "js,svelte"--threshold <уровень>
Заголовок раздела «--threshold <уровень>»Фильтрация диагностики:
warning(по умолчанию) — показывать ошибки и предупрежденияerror— только ошибки
Устранение проблем
Заголовок раздела «Устранение проблем»См. документацию language-tools для настройки препроцессора и других вопросов.
Машиночитаемый вывод
Заголовок раздела «Машиночитаемый вывод»При использовании --output machine или machine-verbose вывод форматируется для удобства обработки (например, в CI-пайплайнах).
Каждая строка — отдельная запись. Колонки разделены пробелом. Первая колонка — timestamp в миллисекундах, вторая — тип записи. Остальные колонки зависят от типа записи.
Первая строка типа START содержит путь к рабочей директории (в кавычках):
1590680325583 START "/home/user/language-tools/packages/language-server/test/plugins/typescript/testfiles"Далее следуют записи ERROR/WARNING. Их структура зависит от формата вывода.
При использовании формата machine вывод будет содержать:
- имя файла (относительно рабочей директории)
- номер строки и столбца начала ошибки
- текст сообщения об ошибке
Имя файла и сообщение заключаются в кавычки.
Пример:
1590680326283 ERROR "codeactions.svelte" 1:16 "Cannot find module 'blubb' or its corresponding type declarations."1590680326778 WARNING "imported-file.svelte" 0:37 "Component has unused export property 'prop'. If it is for external reference only, please consider using `export const prop`"При использовании формата machine-verbose вывод включает:
- имя файла (относительно рабочей директории)
- позиции начала и конца ошибки
- сообщение об ошибке
- код диагностики
- человекочитаемое описание кода
- источник диагностики (например,
svelte/typescript)
Каждая запись представляет собой строку в формате NDJSON с префиксом в виде временной метки.
Пример:
1590680326283 {"type":"ERROR","fn":"codeaction.svelte","start":{"line":1,"character":16},"end":{"line":1,"character":23},"message":"Cannot find module 'blubb' or its corresponding type declarations.","code":2307,"source":"js"}1590680326778 {"type":"WARNING","filename":"imported-file.svelte","start":{"line":0,"character":37},"end":{"line":0,"character":51},"message":"Component has unused export property 'prop'. If it is for external reference only, please consider using `exportconst prop`","code":"unused-export-let","source":"svelte"}Завершающей строкой вывода является сообщение COMPLETED, содержащее сводную статистику проверки:
1590680326807 COMPLETED 20 FILES 21 ERRORS 1 WARNINGS 3 FILES_WITH_PROBLEMSПри возникновении ошибки выполнения приложения, она будет отображена в виде записи типа FAILURE:
1590680328921 FAILURE "Connection closed"Благодарности
Заголовок раздела «Благодарности»Инструмент Vue VTI, который лег в основу svelte-check
Часто задаваемые вопросы и ответы
Заголовок раздела «Часто задаваемые вопросы и ответы»Почему нет опции для проверки отдельных файлов (например, только изменённых)?
Заголовок раздела «Почему нет опции для проверки отдельных файлов (например, только изменённых)?»svelte-check требует полного обзора проекта для корректной работы. Например, если переименовать проп компонента, но не обновить все места его использования — эти места станут ошибками, но они будут пропущены при проверке только изменённых файлов.