sv check
sv check
は、プロジェクト内のエラーと警告を検出します。たとえば、
- 未使用のCSS
- アクセシビリティのヒント
- JavaScript/TypeScriptコンパイラエラー
Node 16 以降が必要です。
インストール
プロジェクトにsvelte-check
パッケージがインストールされている必要があります。
npm i -D svelte-check
使い方
npx sv check
オプション
--workspace <path>
ワークスペースへのパス。node_modules
と--ignore
にリストされているものを除くすべてのサブディレクトリがチェックされます。
--output <format>
エラーと警告の表示方法。「機械可読な出力」を参照してください。
human
human-verbose
machine
machine-verbose
--watch
プロセスを稼働させ続け、変更を監視します。
--preserveWatchOutput
ウォッチモードで画面がクリアされるのを防ぎます。
--tsconfig <path>
tsconfig
またはjsconfig
ファイルへのパスを渡します。パスはワークスペースパスからの相対パスまたは絶対パスを指定できます。これにより、構成ファイルのfiles
/include
/exclude
パターンに一致するファイルのみが診断されます。また、TypeScriptとJavaScriptファイルのエラーが報告されます。指定しない場合、プロジェクトディレクトリから上に辿って、次のjsconfig
/tsconfig.json
ファイルを探します。
--no-tsconfig
現在のディレクトリ以下のSvelteファイルのみをチェックし、.js
/.ts
ファイルを無視したい場合に使用します(型チェックは行われません)。
--ignore <paths>
ワークスペースルートからの相対パスで、無視するファイル/フォルダー。パスはカンマ区切りで引用符で囲む必要があります。例:
npx sv check --ignore "dist,build"
--no-tsconfig
と組み合わせて使用した場合にのみ効果があります。--tsconfig
と組み合わせて使用した場合、これは監視対象のファイルにのみ影響し、診断されるファイルには影響しません。診断されるファイルはtsconfig.json
によって決定されます。
--fail-on-warnings
指定した場合、警告があるとsv check
がエラーコードで終了します。
--compiler-warnings <warnings>
code:behaviour
ペアのカンマ区切りのリスト(引用符で囲む)。ここで、code
はコンパイラの警告コードであり、behaviour
はignore
またはerror
です。
npx sv check --compiler-warnings "css_unused_selector:ignore,a11y_missing_attribute:error"
--diagnostic-sources <sources>
コードで診断を実行する必要があるソースのカンマ区切りのリスト(引用符で囲む)。デフォルトでは、すべてがアクティブです。
js
(TypeScriptを含む)svelte
css
例
npx sv check --diagnostic-sources "js,svelte"
--threshold <level>
診断をフィルター処理します。
warning
(デフォルト)— エラーと警告の両方が表示されます。error
— エラーのみが表示されます。
トラブルシューティング
プリプロセッサのセットアップやその他のトラブルシューティングの詳細については、language-toolsドキュメントを参照してください。
機械可読な出力
--output
をmachine
またはmachine-verbose
に設定すると、CIパイプライン内やコード品質チェックなど、機械で読みやすい形式で出力がフォーマットされます。
各行は新しいレコードに対応します。行は、単一のスペース文字で区切られた列で構成されます。各行の最初の列には、監視目的で使用できるミリ秒単位のタイムスタンプが含まれています。2番目の列は「行タイプ」を示しており、これに基づいて、後続の列の数とタイプが異なる場合があります。
最初の行は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"
クレジット
svelte-check
の基礎を築いたVueのVTI
FAQ
特定のファイルのみ(たとえば、ステージングされたファイルのみ)をチェックするオプションがないのはなぜですか?
svelte-check
は、チェックを有効にするためにプロジェクト全体を「見る」必要があります。コンポーネントのpropの名前を変更したが、propが使用されている場所を更新しなかったとします。使用箇所はすべてエラーになりますが、変更されたファイルでのみチェックを実行した場合は見逃してしまいます。