Package Exports
- npm-watchdog
- npm-watchdog/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (npm-watchdog) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
npm-watchdog 🐕
A cross-platform command-line tool to detect unused dependencies in JavaScript/TypeScript projects.
Description
npm-watchdog analyzes your project's source files (.js, .jsx, .ts, .tsx) and detects which packages listed in your package.json are not being used in the source code. It's like having a watchdog guarding your forgotten dependencies.
Cross-Platform Compatibility
npm-watchdog works on all major platforms:
- Windows
- macOS
- Linux
The tool is designed to handle path differences, file system operations, and other platform-specific issues automatically.
Installation
Global installation (recommended)
npm install -g npm-watchdog
Local installation
npm install --save-dev npm-watchdog
Usage
Basic usage
# If installed globally
npm-watchdog
# If installed locally
npx npm-watchdog
Options
# Show help
npm-watchdog --help
# Export results in JSON format
npm-watchdog --json
# Ignore certain modules in the analysis
npm-watchdog --ignore axios,lodash
# Specify a different base path (useful for monorepo projects)
npm-watchdog --root ./packages/my-package
# Change language (English is default, Spanish is also available)
npm-watchdog --lang es
Multilanguage Support
npm-watchdog supports multiple languages:
- English (default):
--lang en
- Spanish:
--lang es
Example:
npm-watchdog --lang es
How it works
npm-watchdog:
- Reads your package.json and extracts all dependencies (dependencies and devDependencies)
- Recursively looks for all .js, .jsx, .ts, .tsx files in your project
- Analyzes each file looking for:
require('module')
import xyz from 'module'
import * as xyz from 'module'
import * as xyz from 'module'
import 'module'
- Compares the dependencies found with those listed in package.json
- Reports packages that are not being used in any file
Requirements
- Node.js 12 or higher
Limitations
- Does not detect dynamic imports (
require(variable)
) - Does not analyze files with custom extensions
- Does not detect imports in comments or disabled code
License
MIT