dep-sweeper
v1.1.0
Published
Analyze a project and remove unused dependencies, devDependencies, or duplicate versions across monorepos. Check for compatible dependencies.
Maintainers
Readme
dep-sweeper
🧹 A powerful tool to analyze and clean up your project dependencies. Remove unused dependencies, find duplicates across monorepos, and check for compatibility issues.
Features
- 🔍 Unused Dependency Detection: Scan your codebase and identify dependencies that are not being used
- 🚫 Automatic Cleanup: Automatically remove unused dependencies and devDependencies
- 🔄 Duplicate Resolution: Find and automatically fix duplicate versions of packages across monorepo workspaces
- ⚡ Compatibility Auto-Fix: Automatically resolve version conflicts and install missing peer dependencies
- 🤖 Full Auto-Fix Mode: One command to fix all issues automatically
- 📊 Detailed Reports: Get comprehensive analysis reports with actionable insights
- 🎯 Monorepo Support: Full support for Lerna, Rush, Yarn Workspaces, and npm workspaces
Installation
# Global installation
npm install -g dep-sweeper
# Local installation
npm install --save-dev dep-sweeperUsage
Command Line Interface
# Analyze current directory
dep-sweeper analyze
# Analyze specific directory
dep-sweeper analyze ./my-project
# Remove unused dependencies (dry run by default)
dep-sweeper clean
# Automatically remove unused dependencies
dep-sweeper clean --auto
# Apply changes after review
dep-sweeper clean --apply
# Fix duplicate versions automatically
dep-sweeper fix-duplicates --auto
# Fix compatibility issues automatically
dep-sweeper fix-compatibility --auto
# Auto-fix everything (unused, duplicates, compatibility)
dep-sweeper auto-fix --auto
# Check for duplicates in monorepo
dep-sweeper duplicates
# Check compatibility
dep-sweeper compatibility
# Full analysis with all checks
dep-sweeper auditAutomatic Fixing
dep-sweeper can automatically fix issues without manual intervention:
# Auto-fix everything in one command
dep-sweeper auto-fix --auto
# Fix only unused dependencies automatically
dep-sweeper clean --auto
# Fix only duplicate versions
dep-sweeper fix-duplicates --auto
# Fix only compatibility issues
dep-sweeper fix-compatibility --auto--apply: Apply changes instead of dry run--ignore <patterns>: Ignore specific packages or patterns--include-dev: Include devDependencies in analysis--verbose: Show detailed output--format <type>: Output format (json, table, csv)
Programmatic API
import { DepCleaner } from 'dep-sweeper';
const cleaner = new DepCleaner({
projectPath: './my-project',
includeDev: true
});
// Analyze unused dependencies
const analysis = await cleaner.analyzeUnused();
console.log(analysis);
// Find duplicates
const duplicates = await cleaner.findDuplicates();
console.log(duplicates);
// Check compatibility
const compatibility = await cleaner.checkCompatibility();
console.log(compatibility);Configuration
Create a .dep-sweeper.json file in your project root:
{
"ignore": ["react", "@types/*"],
"includeDev": true,
"monorepo": {
"type": "lerna",
"workspaces": ["packages/*"]
},
"compatibility": {
"strict": false,
"checkPeerDeps": true
}
}Examples
Basic Project Cleanup
# Navigate to your project
cd my-project
# Run analysis
dep-sweeper analyze
# Auto-fix all issues
dep-sweeper auto-fix --auto
# Or clean unused dependencies manually
dep-sweeper clean --applyMonorepo Management
# Auto-fix duplicates across workspaces
dep-sweeper fix-duplicates --auto
# Or check and manually fix duplicates
dep-sweeper duplicates --verbose
dep-sweeper fix-duplicates --applyOutput Examples
Unused Dependencies Report
🔍 Analyzing dependencies...
📦 Found 3 unused dependencies:
❌ lodash (4.17.21) - Last used: never
❌ moment (2.29.4) - Last used: never
❌ axios (0.27.2) - Last used: never
💾 Potential savings: 2.3MB
🔧 Run with --apply to remove unused dependenciesDuplicate Dependencies Report
🔄 Checking for duplicates across workspaces...
📦 Found 2 duplicate packages:
⚠️ react
└── packages/web: 18.2.0
└── packages/mobile: 17.0.2
└── packages/shared: 18.1.0
⚠️ typescript
└── packages/api: 4.8.4
└── packages/web: 4.9.3License
MIT © [Your Name]
Contributing
Contributions are welcome! Please read our contributing guidelines and submit pull requests to our repository.
