mcpField
D
dependency-auditor

dependency-auditor

github.com/onewave-aiセキュリティ398310 回インストール1 週間前に更新
リポジトリ

dependency-auditor について

JavaScriptプロジェクト向けの依存関係監査スキルです。脆弱性、古いパッケージや未使用の依存関係、バンドルサイズを確認するためのNPMコマンド、チェックリスト、更新方法、ロックファイルの運用指針を示します。

主な機能

  1. 01脆弱性の確認
  2. 02古いパッケージの確認
  3. 03未使用依存関係の検出
  4. 04バンドルサイズの分析
  5. 05更新方法とチェックリスト
  6. 06ロックファイルの指針

活用シーン

  1. 01NPMプロジェクトの依存関係監査
  2. 02パッケージの更新と整理の準備
  3. 03CIでの依存関係管理の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/onewave-ai/claude-skills --skill dependency-auditor

インストール後、Claude Code で/dependency-auditorを入力して読み込まれたか確認します。

詳細

依存関係の監査

手順

依存関係を監査する際は、次の手順で行います。

  1. セキュリティ監査を実行する
  2. 古くなったパッケージを確認する
  3. 未使用の依存関係を見つける
  4. バンドルサイズへの影響を分析する
  5. レビューして更新する

セキュリティ監査

# NPM audit
npm audit

# Get JSON output for processing
npm audit --json

# Fix automatically (safe fixes only)
npm audit fix

# Force fix (may have breaking changes)
npm audit fix --force

# PNPM
pnpm audit

# Yarn
yarn audit

古くなったパッケージの確認

# NPM
npm outdated

# Interactive update
npx npm-check-updates -i

# Update all to latest
npx npm-check-updates -u
npm install

# Check specific package
npm view <package> versions

未使用の依存関係を見つける

# Using depcheck
npx depcheck

# With details
npx depcheck --detailed

# Ignore patterns
npx depcheck --ignores="@types/*,eslint-*"
よくある誤検出

Depcheck は、実際には必要な以下の項目を未使用として検出することがあります。

  • @types/* パッケージ(TypeScript で使用)
  • ESLint/Prettier プラグイン(設定ファイルで参照)
  • PostCSS プラグイン(設定ファイルで参照)
  • Next.js プラグイン
  • Babel プリセット

バンドルサイズの分析

# For Next.js
npx @next/bundle-analyzer

# General purpose
npx source-map-explorer dist/**/*.js

# Check package size before installing
npx package-phobia <package-name>

# Compare alternatives
npx bundlephobia-cli compare lodash ramda

依存関係のレビューチェックリスト

セキュリティ
  • 重大または高リスクの脆弱性がない
  • 依存関係が積極的に保守されている
  • 既知の悪意あるパッケージがない
  • ロックファイルがコミットされている
最新性
  • メジャーバージョンが遅れていない(意図的な場合を除く)
  • セキュリティパッチが適用されている
  • 非推奨のパッケージが置き換えられている
整理状況
  • 未使用の依存関係がない
  • 重複したパッケージがない(ロックファイルを確認)
  • devDependencies と dependencies が適切に設定されている

更新戦略

慎重に更新する(推奨)
# Update patch versions only
npm update

# Update specific package
npm install package@latest
積極的に更新する
# Update everything
npx npm-check-updates -u
npm install
npm test
対話形式で更新する
npx npm-check-updates -i

# Options:
# a - update all
# space - toggle selection
# enter - apply selected

Package.json の整理

{
  "dependencies": {
    // Runtime dependencies only
  },
  "devDependencies": {
    // Build/test tools only
  },
  "peerDependencies": {
    // For libraries only
  },
  "optionalDependencies": {
    // Platform-specific (rare)
  }
}

ロックファイルのベストプラクティス

  1. ロックファイル(package-lock.json、pnpm-lock.yaml、yarn.lock)は必ずコミットします。
  2. CI/CD では npm ci を使用します(npm install ではありません)。
  3. 破損した場合は、ロックファイルと node_modules を削除して再インストールし、再生成します。
  4. プロジェクトごとにロックファイルは1 つだけ使用します(パッケージマネージャーを混在させないでください)。

自動モニタリング

# .github/dependabot.yml
version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    open-pull-requests-limit: 10
    groups:
      dev-dependencies:
        dependency-type: "development"

コメント