@kszongic/detect-unused-deps
v1.0.0
Published
Find unused, missing, and phantom dependencies in your Node.js projects
Maintainers
Readme
detect-unused-deps
Find unused, missing, and phantom dependencies in your Node.js projects. Zero dependencies. Works with monorepos.
Install
# Run directly (no install needed)
npx detect-unused-deps
# Or install globally
npm i -g detect-unused-depsUsage
# Scan current directory
detect-unused-deps
# Scan a specific directory
detect-unused-deps ./packages/my-app
# JSON output (great for CI)
detect-unused-deps --json
# Ignore specific packages (plugins, implicit deps)
detect-unused-deps --ignore @types/node,webpack-cli,babel-plugin-transform-runtimeWhat it detects
| Category | Description |
|---|---|
| Unused dependencies | Listed in dependencies but never imported |
| Unused devDependencies | Listed in devDependencies but never imported |
| Missing dependencies | Imported in code but not in package.json |
Features
- 🔍 Scans
.js,.jsx,.ts,.tsx,.mjs,.cjs,.mts,.ctsfiles - 📦 Handles
import,require(), dynamicimport(), and re-exports - 🏗️ Supports scoped packages (
@scope/pkg) - 🎯 Ignores
node_modules,dist,build,.git, etc. - 🌈 Color-coded terminal output
- 📊 JSON output for CI/CD pipelines
- 🚫 Zero dependencies
- ⚡ Fast — pure filesystem scan, no AST parsing overhead
Programmatic API
const { analyze } = require('detect-unused-deps');
const result = analyze('./my-project', {
ignore: ['@types/node']
});
console.log(result);
// {
// unused: ['lodash'],
// unusedDev: ['jest'],
// missing: ['chalk'],
// stats: { filesScanned: 42, totalDeps: 10, totalDevDeps: 5, uniqueImports: 15 }
// }Exit codes
| Code | Meaning |
|---|---|
| 0 | No issues found |
| 1 | Unused or missing dependencies detected |
| 2 | Error (e.g., no package.json) |
Tips
Some packages are used implicitly (Babel plugins, ESLint configs, type definitions). Use --ignore to skip them:
detect-unused-deps --ignore @types/node,eslint-config-prettier,babel-plugin-transform-runtimeLicense
MIT
