npm-deprecated-check

Check for deprecated packages

## Preview

## Requirements Since version 1.4.0, `npm-deprecated-check` requires Node.js 18 or higher. ## Install ```bash npm install -g npm-deprecated-check ``` ## Features - Check the packages of current project, global or specified is deprecated. - According to the version range of lockfile and package.json. - Additionally checks if the running node version reached End Of Life. - Return the minimum upgradable version. - Check if the current environment meets the Node.js version range required for dependency operation. - Calculate the minimum Node.js version required across all dependencies. - Suggest compatible dependency versions when Node.js version requirements are not met. - Check Node.js version compatibility for a project or package when upgrading or downgrading Node.js. - MCP Server support: expose tools for external AI agents to consume deprecation data. ## Node.js Version Compatibility The tool automatically analyzes Node.js version requirements across all dependencies and provides helpful information. ### Default Output By default, you get a concise summary showing the recommended engines.node value: ``` Node Version Summary: Minimum engines.node: >=20.0.0 Recommendation: Update package.json engines.node to ">=20.0.0" Current: >=18.12 ``` ### Detailed Output (--verbose) Use the `--verbose` flag for detailed information: ```bash ndc current --verbose ``` ``` Node Version Summary (detailed): Minimum Node version (production): 20.0.0 Determined by: eslint@9.35.0 Minimum Node version (development): 20.17.0 Determined by: typescript@5.7.2 Current Node version: v25.4.0 Project engines.node: >=18.12 Production dependencies require Node >=20.0.0, but package.json allows >=18.12 Consider updating engines.node to ">=20.0.0" ``` ### Compatible Version Suggestions When a dependency requires a newer Node.js version than you're currently running, the tool suggests a compatible alternative version: ``` WARN eslint@9.35.0: 2024-10-05T18:45:12.345Z Required node: ^18.18.0 || ^20.9.0 || >=21.1.0 Compatible version for current Node: 8.57.1 ``` ## Usage ```bash Usage: ndc [options] Options: -V, --version output the version number -h, --help display help for command Commands: current [options] check the packages of the current project global [options] check global packages, default: npm package [options] check for specified package compat [options] [packageName] check Node.js version compatibility for project or package node check if used node version is deprecated (reached End Of Life) config [options] inspect and modify the config help [command] display help for command ``` For `current`: ```bash Options: --registry specify registry URL, default: https://registry.npmjs.org/ --ignore ignore specific packages, example: request,tslint --failfast exit the program if it has been deprecated --deep deep inspection for monorepo projects --verbose show detailed Node version compatibility information ``` For `global`: ```bash Options: -m, --manager check specified package manager (choices: "npm", "yarn", "pnpm") --registry specify registry URL, default: https://registry.npmjs.org/ --ignore ignore specific packages, example: request,tslint --failfast exit the program if it has been deprecated ``` For `package`: ```bash Options: -r, --range check specified versions --registry specify registry URL, default: https://registry.npmjs.org/ ``` For `compat`: ```bash Usage: ndc compat [packageName] [options] check Node.js version compatibility for project or package Options: --node target Node.js version (e.g. "18", "20.11.0"), default: current Node version --deep deep inspection for monorepo projects (project mode only) --ignore ignore specific packages, example: request,tslint --registry specify registry URL, default: https://registry.npmjs.org/ ``` ### Compat Examples Check current project against the current Node version: ```bash ndc compat ``` Check current project against a target Node version: ```bash ndc compat --node 18 ``` Check a specific package against a target Node version: ```bash ndc compat esbuild --node 18 ``` Deep check monorepo projects: ```bash ndc compat --node 20 --deep ``` You can also save options to global configuration: ```bash Usage: ndc config [options] inspect and modify the config Options: -g, --get get value from option -s, --set set option value -d, --delete delete option from config -l, --list list all options ``` ## MCP Server `npm-deprecated-check` can run as an MCP (Model Context Protocol) Server, exposing its checking capabilities as tools for AI agents. ### Start the MCP Server ```bash npx -y npm-deprecated-check --mcp ``` ### Client Configuration **Claude Desktop / OpenCode (recommended: global install):** ```json { "mcpServers": { "npm-deprecated-check": { "command": "npm-deprecated-check", "args": ["--mcp"] } } } ``` > Install globally first: `npm install -g npm-deprecated-check` **Claude Desktop / OpenCode (npx):** ```json { "mcpServers": { "npm-deprecated-check": { "command": "npx", "args": ["-y", "npm-deprecated-check", "--mcp"] } } } ``` ### Available Tools | Tool | Description | |------|-------------| | `check_package` | Check if a specific npm package is deprecated | | `check_current_project` | Check all dependencies of the current project | | `check_global` | Check globally installed packages | | `check_node` | Check if the current Node.js version has reached EOL | | `check_compat` | Check Node.js version compatibility for a project or package | All tools return structured JSON data. The AI agent can use this data to provide recommendations, suggest alternatives, or generate reports. ### Tool Parameters **check_package:** - `packageName` (required) — npm package name - `range` (optional) — version range, e.g. `"^1.0.0"` - `registry` (optional) — custom npm registry URL **check_current_project:** - `ignore` (optional) — comma-separated package names to ignore - `deep` (optional) — deep inspection for monorepo projects - `registry` (optional) — custom npm registry URL **check_global:** - `manager` (optional) — package manager: `"npm"`, `"yarn"`, or `"pnpm"` (default: `"npm"`) - `ignore` (optional) — comma-separated package names to ignore - `registry` (optional) — custom npm registry URL **check_node:** No parameters. **check_compat:** - `packageName` (optional) — npm package name. If not provided, checks the current project - `nodeVersion` (optional) — target Node.js version (e.g. `"18"`, `"20.11.0"`). Defaults to current Node version - `projectPath` (optional) — absolute path to project root (only used when `packageName` is not provided) - `deep` (optional) — deep inspection for monorepo projects - `ignore` (optional) — comma-separated package names to ignore - `registry` (optional) — custom npm registry URL ## Credits `npm-deprecated-check` is inspired by [`check-is-deprecated`](https://github.com/awesome-cli/check-is-deprecated).