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
がignore
またはerror
であるcode:behaviour
ペアのリスト。例:
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
— エラーのみが表示されます
トラブルシューティング
プリプロセッサのセットアップやその他のトラブルシューティングについては、言語ツールのドキュメントを参照してください。
マシンリーダブル向け出力
--output
をmachine
またはmachine-verbose
に設定すると、CIパイプライン内やコード品質チェックなどで機械によって読みやすい形式で出力がフォーマットされます。
各行は新しいレコードに対応しています。行は一つのスペース文字で区切られた列で構成されます。各行の最初の列はミリ秒のタイムスタンプを含み、モニタリング目的で使用できます。第二列は”行タイプ”を示し、それに基づいて後続の列の数とタイプが異なる場合があります。
最初の行は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
は、チェックが有効になるためにプロジェクト全体を「見る」必要があります。例えば、コンポーネントプロパティの名前を変更しましたが、そのプロパティが使用されている場所の更新を忘れた場合、使用サイトはすべてエラーになりますが、変更されたファイルのみをチェックするとこれらを見逃すことになります。