Перейти к содержимому

sv check

sv check обнаруживает ошибки и предупреждения в вашем проекте, такие как:

  • Неиспользуемый CSS
  • Подсказки по доступности
  • Ошибки компилятора JavaScript/TypeScript

Требуется Node.js версии 16 или выше.

Необходимо установить пакет svelte-check в проекте:

Окно терминала
npm i -D svelte-check
Окно терминала
npx sv check

Путь к рабочей области. Проверяются все поддиректории, кроме node_modules и указанных в --ignore.

Формат вывода ошибок и предупреждений. См. Машиночитаемый вывод.

  • human
  • human-verbose
  • machine
  • machine-verbose

Не завершать процесс и отслеживать изменения.

Не очищать экран в режиме watch.

Путь к файлу tsconfig или jsconfig. Может быть относительным (относительно рабочей директории) или абсолютным. При использовании проверяются только файлы, соответствующие шаблонам files/include/exclude в конфиге. Также включается проверка ошибок в файлах TypeScript/JavaScript. Если не указано, производится поиск jsconfig/tsconfig.json в родительских директориях.

Используйте, если нужно проверять только Svelte-файлы в текущей директории (файлы .js/.ts проверяться не будут).

Файлы/директории для игнорирования (относительно корневой директории рабочей области). Пути указываются через запятую в кавычках. Пример:

Окно терминала
npx sv check --ignore "dist,build"

Действует только с --no-tsconfig. При использовании с --tsconfig влияет только на отслеживаемые файлы, но не на диагностируемые (которые определяются tsconfig.json).

Завершать процесс с кодом ошибки при наличии предупреждений.

Список в формате код:действие в кавычках, где код — код предупреждения компилятора, а действие — ignore или error:

Окно терминала
npx sv check --compiler-warnings "css_unused_selector:ignore,a11y_missing_attribute:error"

Список источников диагностики через запятую в кавычках. По умолчанию активны все:

  • js (включая TypeScript)
  • svelte
  • css

Пример:

Окно терминала
npx sv check --diagnostic-sources "js,svelte"

Фильтрация диагностики:

  • 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 `export
const 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 требует полного обзора проекта для корректной работы. Например, если переименовать проп компонента, но не обновить все места его использования — эти места станут ошибками, но они будут пропущены при проверке только изменённых файлов.