eslint-plugin-node-dependencies

ESLint plugin to check Node.js dependencies.

Usage no npm install needed!

<script type="module">
  import eslintPluginNodeDependencies from 'https://cdn.skypack.dev/eslint-plugin-node-dependencies';
</script>

README

Introduction

eslint-plugin-node-dependencies is ESLint plugin to check Node.js dependencies.

::: This Plugin is still in an EXPERIMENTAL STATE :::

NPM license NPM version NPM downloads NPM downloads NPM downloads NPM downloads NPM downloads Build Status Coverage Status

: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 v12.x, v14.x and above

:book: Usage

Add node-dependencies to the plugins section of your .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

The plugin:node-dependencies/recommended config enables a subset of the rules that should be most useful to most users. See lib/configs/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.

// .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/valid-semver enforce versions that is valid as a semantic version. :star:

Best Practices

Rule ID Description
node-dependencies/no-deprecated disallow having dependencies on deprecate packages.

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

:lock: License

See the LICENSE file for license rights and limitations (MIT).