eslint-plugin-node-dependencies
v2.2.0
Published
ESLint plugin to check Node.js dependencies.
Maintainers
Readme
Introduction
eslint-plugin-node-dependencies is ESLint plugin to check Node.js dependencies.
::: This Plugin is still in an EXPERIMENTAL STATE :::
:name_badge: Features
This ESLint plugin checks package.json and provides linting rules related to dependencies problems.
:book: Documentation
See documents.
:cd: Installation
npm install --save-dev eslint eslint-plugin-node-dependenciesRequirements
- ESLint v9.38.0 and above
- Node.js
^20.19.0 || ^22.13.0 || >=24
:book: Usage
Add node-dependencies to the plugins section of your eslint.config.js configuration file and either use one of the configurations available (recommended) or configure the rules you want:
The recommended configuration
The plugin.configs.recommended config enables a subset of the rules that should be most useful to most users.
See lib/configs/rules/recommended.ts for more details.
// eslint.config.js
import nodeDependenciesPlugin from "eslint-plugin-node-dependencies"
export default [
...nodeDependenciesPlugin.configs.recommended,
];Advanced Configuration
Override/add specific rules configurations. See also: http://eslint.org/docs/user-guide/configuring.
// eslint.config.js
import nodeDependenciesPlugin from "eslint-plugin-node-dependencies"
export default [
{
plugins: { "node-dependencies": nodeDependenciesPlugin },
rules: {
// Override/add rules settings here, such as:
"node-dependencies/rule-name": "error"
}
}
];:white_check_mark: Rules
The --fix option on the command line automatically fixes problems reported by rules which have a wrench :wrench: below.
The rules with the following star :star: are included in the plugin.configs.recommended config.
Possible Errors
| Rule ID | Description | | |:--------|:------------|:---| | node-dependencies/compat-engines | enforce the versions of the engines of the dependencies to be compatible. | :star: | | node-dependencies/no-dupe-deps | disallow duplicate dependencies. | :star: | | node-dependencies/valid-semver | enforce versions that is valid as a semantic version. | :star: |
Best Practices
| Rule ID | Description | | |:--------|:------------|:---| | node-dependencies/absolute-version | require or disallow absolute version of dependency. | | | node-dependencies/no-deprecated | disallow having dependencies on deprecate packages. | | | node-dependencies/no-restricted-deps | Disallows dependence on the specified package. | | | node-dependencies/require-provenance-deps | Require provenance information for dependencies | |
Stylistic Issues
| Rule ID | Description | |
|:--------|:------------|:---|
| node-dependencies/prefer-caret-range-version | require caret(^) version instead of range version. | :wrench: |
| node-dependencies/prefer-tilde-range-version | require tilde(~) version instead of range version. | :wrench: |
Deprecated
- :warning: We're going to remove deprecated rules in the next major release. Please migrate to successor/new rules.
- :innocent: We don't fix bugs which are in deprecated rules since we don't have enough resources.
| Rule ID | Replaced by | |:--------|:------------| | node-dependencies/valid-engines | node-dependencies/compat-engines |
:rocket: To Do More Verification
Verify JSON
You can verify the JSON files by checking and installing eslint-plugin-jsonc.
Verify using JSON Schema
You can verify using JSON Schema by checking and installing eslint-plugin-json-schema-validator.
:beers: Contributing
Welcome contributing!
Please use GitHub's Issues/PRs.
Development Tools
npm testruns tests and measures coverage.npm run updateruns in order to update readme and recommended configuration.npm run new [new rule name]runs to create the files needed for the new rule.npm run docs:watchstarts the website locally.
:couple: Related Packages
- eslint-plugin-jsonc ... ESLint plugin for JSON, JSON with comments (JSONC) and JSON5.
- eslint-plugin-json-schema-validator ... ESLint plugin that validates data using JSON Schema Validator.
- jsonc-eslint-parser ... JSON, JSONC and JSON5 parser for use with ESLint plugins.
:lock: License
See the LICENSE file for license rights and limitations (MIT).
