knip-deadcode について
JavaScript と TypeScript のプロジェクトで Knip を使い、不要コードを検出・削除するためのリファレンススキルです。設定、モノレポ、CI、修正、性能の指針を優先度別に整理しています。
主な機能
- 018 カテゴリーにわたる 43 のルール
- 02Knip の設定とエントリーポイントの指針
- 03モノレポと依存関係の分析
- 04CI、自動修正、性能の実践項目
活用シーン
- 01プロジェクトやモノレポで Knip を設定
- 02誤検出や見逃しを調査
- 03CI に不要コード検査を追加
- 04自動修正による整理を計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill knip-deadcodeインストール後、Claude Code で/knip-deadcodeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
metadata.jsonassets/templates/_template.mdreferences/_sections.mdci-add-to-pipeline.mdci-separate-production-check.mdci-use-cache.mdci-use-max-issues.mdci-use-reporters.mdci-watch-mode-local.mdconfig-avoid-broad-ignore.mdconfig-configure-path-aliases.mdconfig-enable-plugins-explicitly.mdconfig-run-without-config.mdconfig-separate-entry-project.mdconfig-use-json-schema.mdconfig-use-negation-patterns.mdconfig-use-production-mode.mddeps-add-unlisted-deps.mddeps-avoid-transitive-reliance.mddeps-configure-plugin-deps.mddeps-fix-files-first.mddeps-ignore-conditional-deps.mddeps-remove-obsolete-types.mdentry-add-dynamic-imports.mdentry-exclude-test-files.mdentry-include-all-entry-points.mdentry-include-bin-scripts.mdentry-use-compilers.mdentry-use-plugin-entries.mdentry-verify-with-debug.md詳細
Community Knip のデッドコード検出のベストプラクティス
Knip を使用して JavaScript および TypeScript プロジェクトのデッドコードを検出・削除するための包括的なガイドです。8 つのカテゴリにわたる 43 のルールを収録し、影響度に基づいて優先順位を付け、設定、CI 統合、クリーンアップのワークフローを案内します。
適用するタイミング
次の場合に、これらのガイドラインを参照してください。
- 新しいプロジェクトやモノレポ向けに Knip を設定するとき
- 誤検出や検出漏れを調査するとき
- デッドコードの再発を防ぐ CI パイプラインを設定するとき
- 自動修正を使って未使用コードをクリーンアップするとき
- 大規模なコードベースで Knip のパフォーマンスを最適化するとき
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | 設定の基盤 | CRITICAL | config- |
| 2 | エントリーポイント戦略 | CRITICAL | entry- |
| 3 | ワークスペースとモノレポ | HIGH | workspace- |
| 4 | 依存関係の分析 | HIGH | deps- |
| 5 | エクスポートの検出 | MEDIUM-HIGH | exports- |
| 6 | CI 統合 | MEDIUM | ci- |
| 7 | 自動修正のワークフロー | MEDIUM | fix- |
| 8 | パフォーマンスの最適化 | LOW-MEDIUM | perf- |
クイックリファレンス
1. 設定の基盤(CRITICAL)
config-avoid-broad-ignore- 広範な無視パターンを避けるconfig-configure-path-aliases- Knip でパスエイリアスを設定するconfig-enable-plugins-explicitly- フレームワークプラグインを明示的に有効にするconfig-run-without-config- まず設定ファイルなしで実行し、ベースラインを確認するconfig-separate-entry-project- エントリーファイルとプロジェクトファイルを分けるconfig-use-json-schema- 設定の検証に JSON Schema を使用するconfig-use-negation-patterns- 除外には否定パターンを使用するconfig-use-production-mode- 出荷するコードの分析には本番モードを使用する
2. エントリーポイント戦略(CRITICAL)
entry-add-dynamic-imports- 動的インポートの対象をエントリーポイントとして追加するentry-exclude-test-files- テストファイルを本番用エントリーポイントから除外するentry-include-all-entry-points- すべてのアプリケーションのエントリーポイントを含めるentry-include-bin-scripts- バイナリスクリプトをエントリーポイントとして含めるentry-use-compilers- 標準以外のファイル形式にはコンパイラーを使用するentry-use-plugin-entries- フレームワークではプラグインのエントリーポイントを使用するentry-verify-with-debug- デバッグモードでエントリーポイントを検証する
3. ワークスペースとモノレポ(HIGH)
workspace-configure-root-workspace- ルートワークスペースを明示的に設定するworkspace-ignore-specific- 必要に応じて特定のワークスペースを無視するworkspace-isolate-for-strict- 厳密な依存関係チェックのためにワークスペースを分離するworkspace-list-cross-deps- ワークスペース間の依存関係を明示的に列挙するworkspace-per-workspace-plugins- ワークスペースごとにプラグインを設定するworkspace-use-workspace-globs- 一貫した設定のためにワークスペースの glob パターンを使用する
4. 依存関係の分析(HIGH)
deps-add-unlisted-deps- package.json に未記載の依存関係を追加しますdeps-avoid-transitive-reliance- 推移的依存関係への依存を避けますdeps-configure-plugin-deps- ツール固有の依存関係に合わせてプラグインを設定しますdeps-fix-files-first- 依存関係を修正する前に未使用ファイルを修正しますdeps-ignore-conditional-deps- 条件付きで読み込まれる依存関係を無視しますdeps-remove-obsolete-types- 古い型定義パッケージを削除します
5. エクスポートの検出(MEDIUM-HIGH)
exports-check-class-members- クラスメンバーに未使用コードがないか確認しますexports-enable-entry-exports- プライベートパッケージでエントリーのエクスポートチェックを有効にしますexports-handle-reexports- バレルファイル内の再エクスポートを処理しますexports-ignore-same-file- 同じファイル内で使われているエクスポートを無視しますexports-tag-public-api- JSDoc でパブリック API のエクスポートにタグを付けますexports-trace-usage- 削除前にエクスポートの使用状況を追跡しますexports-use-include-libs- 型ベースの利用に include libs を使用します
6. CI との統合(MEDIUM)
ci-add-to-pipeline- Knip を CI パイプラインに追加しますci-separate-production-check- 本番モードとデフォルトモードのチェックを分けますci-use-cache- CI の実行を高速化するためにキャッシュを有効にしますci-use-max-issues- 段階的に導入するために max issues を使用しますci-use-reporters- CI の出力に適したレポーターを使用しますci-watch-mode-local- ローカル開発でウォッチモードを使用します
7. 自動修正のワークフロー(MEDIUM)
fix-allow-remove-files- ファイル削除を明示的に許可しますfix-format-after-fix- 自動修正の後にコードをフォーマットしますfix-review-before-commit- コミット前に自動修正による変更を確認しますfix-update-deps-after- 依存関係の修正後にパッケージマネージャーを更新しますfix-use-fix-type- 対象を絞ったクリーンアップに fix type を使用します
8. パフォーマンスの最適化(LOW-MEDIUM)
perf-filter-issue-types- 分析対象を絞るために問題の種類をフィルタリングしますperf-limit-output- 大規模なコードベースで出力を制限しますperf-profile-performance- 分析が遅い場合にパフォーマンスをプロファイリングしますperf-use-bun-runtime- 分析を高速化するために Bun ランタイムを使用しますperf-use-cache-flag- 繰り返しの分析でキャッシュを有効にしますperf-use-workspace-filter- モノレポ分析を高速化するためにワークスペースをフィルタリングします
使用方法
詳しい説明とコード例については、各リファレンスファイルをお読みください。
- セクションの定義 - カテゴリーの構成と影響度
- ルールのテンプレート - 新しいルールを追加するためのテンプレート
リファレンスファイル
| ファイル | 説明 |
|---|---|
| references/_sections.md | カテゴリーの定義と順序 |
| assets/templates/_template.md | 新しいルール用のテンプレート |
| metadata.json | バージョンとリファレンス情報 |
コメント
Markdown 対応