eslint-plugin-node-dependencies is ESLint plugin to check Node.js dependencies.
::: This Plugin is still in an EXPERIMENTAL STATE :::
This ESLint plugin checks package.json
and provides linting rules related to dependencies problems.
See documents.
npm install --save-dev eslint eslint-plugin-node-dependencies
Requirements
- ESLint v6.0.0 and above
- Node.js v14.16.0 and above
Add node-dependencies
to the plugins section of your eslint.config.js
or .eslintrc
configuration file (you can omit the eslint-plugin-
prefix)
and either use one of the two configurations available (recommended
) or configure the rules you want:
The plugin.configs["flat/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 * as nodeDependenciesPlugin from "eslint-plugin-node-dependencies"
export default [
...nodeDependenciesPlugin.configs["flat/recommended"],
];
The plugin:node-dependencies/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.
// .eslintrc.js
module.exports = {
"plugins": [
"node-dependencies"
],
"extends": [
// add more generic rulesets here, such as:
// 'eslint:recommended',
"plugin:node-dependencies/recommended"
]
}
Override/add specific rules configurations. See also: http://eslint.org/docs/user-guide/configuring.
// eslint.config.js
import * as 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"
}
}
];
// .eslintrc.js
module.exports = {
"plugins": [
"node-dependencies"
],
"rules": {
// Override/add rules settings here, such as:
"node-dependencies/rule-name": "error"
}
}
If you have specified a parser, you need to configure a parser for .json
.
For example, if you are using the "@babel/eslint-parser"
, configure it as follows:
module.exports = {
// ...
extends: [ "plugin:node-dependencies/recommended"],
// ...
parser: "@babel/eslint-parser",
// Add an `overrides` section to add a parser configuration for json.
overrides: [
{
files: ["*.json", "*.json5"],
parser: "jsonc-eslint-parser",
},
],
// ...
};
The --fix
option on the command line automatically fixes problems reported by rules which have a wrench π§ below.
The rules with the following star β are included in the plugin:node-dependencies/recommended
config.
Rule ID | Description | |
---|---|---|
node-dependencies/compat-engines | enforce the versions of the engines of the dependencies to be compatible. | β |
node-dependencies/no-dupe-deps | disallow duplicate dependencies. | β |
node-dependencies/valid-semver | enforce versions that is valid as a semantic version. | β |
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. |
Rule ID | Description | |
---|---|---|
node-dependencies/prefer-caret-range-version | require caret(^ ) version instead of range version. |
π§ |
node-dependencies/prefer-tilde-range-version | require tilde(~ ) version instead of range version. |
π§ |
β οΈ We're going to remove deprecated rules in the next major release. Please migrate to successor/new rules.- π 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 |
You can verify the JSON files by checking and installing eslint-plugin-jsonc.
You can verify using JSON Schema by checking and installing eslint-plugin-json-schema-validator.
Welcome contributing!
Please use GitHub's Issues/PRs.
npm test
runs tests and measures coverage.npm run update
runs 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:watch
starts the website locally.
- 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.
See the LICENSE file for license rights and limitations (MIT).