eslint-plugin-node-dependencies
v0.12.0
Published
ESLint plugin to check Node.js dependencies.
Downloads
31,100
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-dependencies
Requirements
- ESLint v6.0.0 and above
- Node.js v14.16.0 and above
:book: Usage
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 recommended configuration (New Config)
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 recommended configuration (Legacy Config)
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"
]
}
Advanced Configuration
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"
}
}
Parser Configuration
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",
},
],
// ...
};
: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:node-dependencies/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. | |
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 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.
: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).