Skip to main content

knip-dead-code

Knip dead-code detector for JS/TS: unused files, deps, exports, types. Use when cleaning up codebases, finding dead exports, or enforcing dependency hygiene in CI.

معلومات المصدر

المستودع
laurigates/claude-plugins
آخر نشاط في المصدر
٣ سبتمبر ٢٠٢٦ في ٠٦:٥١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٥٨
التفرعات
٦

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
created
2025-12-16T00:00:00.000Z
modified
2026-07-28T00:00:00.000Z
reviewed
2025-12-16T00:00:00.000Z
name
knip-dead-code
description
Knip dead-code detector for JS/TS: unused files, deps, exports, types. Use when cleaning up codebases, finding dead exports, or enforcing dependency hygiene in CI.
user-invocable
false
allowed-tools
Glob, Grep, Read, Bash, Edit, Write, TodoWrite, WebFetch, WebSearch
# Knip Dead Code Detection Knip is a comprehensive tool for finding unused code, dependencies, and exports in JavaScript and TypeScript projects. It helps maintain clean codebases and catch dead code before it accumulates. Knip finds *statically* unreachable code. Reach for a different tool for unused CSS (PurgeCSS), runtime dead code paths, bundle-size trimming (bundler tree-shaking), or duplicate dependencies (npm-dedupe). ## Core Expertise **What is Knip?** - **Unused detection**: Files, dependencies, exports, types, enum members - **Plugin system**: Supports 80+ frameworks and tools - **Fast**: Analyzes large codebases in seconds - **Actionable**: Clear reports with file locations - **CI-ready**: Exit codes for failing builds ## Installation ```bash # Project-local (recommended) bun add --dev knip # Verify installation bunx knip --version ``` ## Basic Usage ```bash # Run Knip (scans entire project) bunx knip # Show only unused dependencies bunx knip --dependencies # Show only unused exports bunx knip --exports # Show only unused files bunx knip --files # Production mode (only check production dependencies) bunx knip --production # Exclude specific issue types bunx knip --exclude-exports-used-in-file # Output JSON (for CI) bunx knip --reporter json # Debug mode (show configuration) bunx knip --debug ``` ## Configuration ### Auto-detection (Zero Config) Knip automatically detects: - Entry points (package.json `main`, `exports`, `bin`) - Frameworks (Next.js, Vite, Remix, etc.) - Test runners (Vitest, Jest, Playwright) - Build tools (ESLint, TypeScript, PostCSS) **No configuration needed for standard projects.** ### knip.json (Explicit Configuration) ```json { "$schema": "https://unpkg.com/knip@latest/schema.json", "entry": ["src/index.ts", "src/cli.ts"], "project": ["src/**/*.ts"], "ignore": ["**/*.test.ts", "scripts/**"], "ignoreDependencies": ["@types/*"], "ignoreBinaries": ["npm-check-updates"] } ``` ### knip.ts (TypeScript Configuration) ```typescript // knip.ts import type { KnipConfig } from 'knip'; const config: KnipConfig = { entry: ['src/index.ts', 'src/cli.ts'], project: ['src/**/*.ts', 'scripts/**/*.ts'], ignore: ['**/*.test.ts', '**/*.spec.ts', 'tmp/**'], ignoreDependencies: [ '@types/*', // Type definitions 'typescript', // Always needed ], ignoreExportsUsedInFile: true, ignoreWorkspaces: ['packages/legacy/**'], }; export default config; ``` ## Common Patterns ### Check Only Unused Dependencies ```bash # Fastest check - only dependencies bunx knip --dependencies # Exit with error if any unused dependencies bunx knip --dependencies --max-issues 0 ``` **Use in CI to enforce strict dependency hygiene.** ### Check Only Exports (Library Development) ```bash # Check for unused exports bunx knip --exports # Allow exports used in same file bunx knip --exports --exclude-exports-used-in-file ``` **Use for libraries to ensure clean public API.** ### Production vs Development Dependencies ```bash # Check production code only bunx knip --production # Check everything (including dev dependencies) bunx knip ``` ## Interpreting Results ### Example Output ``` No unused files No unused dependencies 2 unused exports src/utils.ts: - calculateTax (line 42) - formatDate (line 58) src/types.ts: - UserRole (line 12) ``` ### Issue Types | Type | Description | Action | |------|-------------|--------| | Unused file | File not imported anywhere | Delete or add to entry points | | Unused dependency | Package in package.json not used | Remove from dependencies | | Unused export | Exported but never imported | Remove export or make private | | Unused type | Type/interface exported but unused | Remove or make internal | | Unused enum member | Enum member never referenced | Remove member | | Duplicate export | Same export from multiple files | Consolidate exports | ## Agentic Optimizations | Context | Command | |---------|---------| | Quick scan | `bunx knip` | | Dependencies only | `bunx knip --dependencies` | | Exports only | `bunx knip --exports` | | CI strict mode | `bunx knip --max-issues 0` | | Production check | `bunx knip --production` | | JSON output | `bunx knip --reporter json` | | Debug config | `bunx knip --debug` | | Changed files | `bunx knip --changed --base main` | ## Quick Reference | Flag | Description | |------|-------------| | `--dependencies` | Check only unused dependencies | | `--exports` | Check only unused exports | | `--files` | Check only unused files | | `--production` | Production dependencies only | | `--max-issues N` | Fail if more than N issues | | `--reporter json` | JSON output for CI | | `--reporter compact` | Compact output | | `--debug` | Show configuration details | | `--changed` | Check only changed files | | `--changed --base main` | Changed files since main | | `--workspace NAME` | Check specific workspace | | `--exclude-exports-used-in-file` | Ignore same-file exports | For detailed examples, advanced patterns, and best practices, see [REFERENCE.md](REFERENCE.md). ## References - Official docs: https://knip.dev - Configuration: https://knip.dev/reference/configuration - Plugins: https://knip.dev/reference/plugins - CLI reference: https://knip.dev/reference/cli - FAQ: https://knip.dev/reference/faq
عرض على GitHub