
こんにちは。よっしーです(^^)
今日は、SvelteKitのリファレンスについて解説して います。
背景
SvelteKitのリファレンスについて調査する機会がありましたので、その時の内容を備忘として記事に残しました。
CLIツール(sv)
コマンドラインインターフェース(CLI)であるsv
は、Svelteアプリケーションの作成と保守のためのツールキットです。
sv check の使用方法
sv check
は、プロジェクト内の以下のような問題点や警告を見つけます:
- 未使用のCSS
- アクセシビリティのヒント
- JavaScript/TypeScriptコンパイラのエラー
Node 16以降が必要です。
トラブルシューティング
プリプロセッサの設定やその他のトラブルシューティングについては、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)
Q: なぜ特定のファイル(例えばステージングされたファイルのみ)をチェックするオプションがないのですか?
A: svelte-check
はチェックを有効にするために、プロジェクト全体を「見る」必要があります。例えば、コンポーネントのプロパティの名前を変更したが、そのプロパティが使用されている場所を更新しなかった場合 – 使用箇所はすべてエラーになりますが、変更されたファイルだけをチェックすると、これらのエラーを見逃してしまいます。
まとめ
Svelteプロジェクトでのsv check
コマンドの出力形式とトラブルシューティングについて説明しています。特に以下の点が重要です:
- 機械可読出力:CIパイプラインやコード品質チェックツールで使用するための構造化された出力形式を提供します。
machine
形式:シンプルな列形式の出力machine-verbose
形式:より詳細なJSON形式の出力
- 出力の構造:
- すべての行はタイムスタンプで始まる
START
:チェック開始を示すERROR
/WARNING
:発見された問題COMPLETED
:チェック完了の統計情報FAILURE
:実行時エラー
- FAQ:特定のファイルだけをチェックするオプションがない理由として、プロジェクト全体のコンテキストでの検証が必要である点が説明されています。
この機能は特に自動化されたビルドシステムやCI/CDパイプラインで役立ちます。例えば、ビルドプロセスの一部としてsv check
を実行し、エラーや警告の数に基づいてビルドを成功または失敗させることができます。また、機械可読出力を解析して品質メトリクスを収集したり、開発チームにフィードバックを提供したりする自動化ツールを構築することも可能です。
おわりに
今日は、 SvelteKitのリファレンスについて解説しました。

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント