Socket
Socket
Sign inDemoInstall

eslint-plugin-node

Package Overview
Dependencies
100
Maintainers
1
Versions
60
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    eslint-plugin-node

Additional ESLint's rules for Node.js


Version published
Maintainers
1
Install size
370 kB
Created

Package description

What is eslint-plugin-node?

The eslint-plugin-node package is an ESLint plugin that contains rules that are specific to Node.js development. It helps in identifying issues related to syntax and patterns that are not optimal or could lead to errors in a Node.js context.

What are eslint-plugin-node's main functionalities?

Process Exit As Throw

This rule treats calls to process.exit() as throw statements, which can be useful for highlighting an unexpected termination of the Node.js process.

/* eslint node/no-process-exit: 'error' */
process.exit(1);

No Deprecated API

This rule prevents the use of deprecated Node.js APIs to encourage best practices and avoid potential future issues with deprecated methods.

/* eslint node/no-deprecated-api: 'error' */
const domain = require('domain');

No Missing Imports

This rule ensures that all modules that are imported into a file are actually resolvable, helping to catch typos and incorrect module names.

/* eslint node/no-missing-import: 'error' */
import someModule from 'nonexistent-module';

No Unpublished Bin

This rule checks that all files referenced in the 'bin' field of package.json are actually published, preventing issues with npm packages.

/* eslint node/no-unpublished-bin: 'error' */
{
  "bin": "bin/nonexistent.js"
}

Other packages similar to eslint-plugin-node

Readme

Source

eslint-plugin-node

npm version Downloads/month Build Status Coverage Status Dependency Status

Additional ESLint's rules for Node.js

:cd: Install & Usage

> npm install --save-dev eslint eslint-plugin-node
  • Requires Node.js ^4.0.0 || >=6.0.0
  • Requires ESLint >=3.1.0

Note: It recommends a use of the "engines" field of package.json. The "engines" field is used by no-unsupported-features rule.

.eslintrc.json (An example)

{
    "plugins": ["node"],
    "extends": ["eslint:recommended", "plugin:node/recommended"],
    "rules": {
        "node/exports-style": ["error", "module.exports"],
    }
}

package.json (An example)

{
    "name": "your-module",
    "version": "1.0.0",
    "engines": {
        "node": ">=4.0.0"
    }
}

:bulb: Rules

Rule IDDescription
exports-styleEnforce either module.exports or exports.
:star:no-deprecated-apiDisallow deprecated API.
no-hide-core-modulesDisallow third-party modules which are hiding core modules.
no-missing-importDisallow import declarations for files that don't exist. :warning:
:star:no-missing-requireDisallow require()s for files that don't exist.
:star:no-unpublished-binDisallow bin files that npm ignores.
no-unpublished-importDisallow import declarations for files that npm ignores. :warning:
:star:no-unpublished-requireDisallow require()s for files that npm ignores.
:star:no-unsupported-featuresDisallow unsupported ECMAScript features on the specified version.
:star:process-exit-as-throwMake the same code path as throw at process.exit().
:star::pencil:shebangSuggest correct usage of shebang.
  • :star: - the mark of a recommended rule.
  • :pencil: - the mark of a fixable rule.

:wrench: Configs

This plugin provides plugin:node/recommended preset config. This preset config:

  • enables the environment of ES2015 (ES6) and Node.js.
  • enables rules which are given :star: in the above table.
  • enables no-process-exit rule because the official document does not recommend a use of process.exit().
  • adds {ecmaVersion: 8} into parserOptions.

:couple: FAQ

:anchor: Semantic Versioning Policy

eslint-plugin-node follows semantic versioning and ESLint's Semantic Versioning Policy.

  • Patch release (intended to not break your lint build)
    • A bug fix in a rule that results in it reporting fewer errors.
    • Improvements to documentation.
    • Non-user-facing changes such as refactoring code, adding, deleting, or modifying tests, and increasing test coverage.
    • Re-releasing after a failed release (i.e., publishing a release that doesn't work for anyone).
  • Minor release (might break your lint build)
    • A bug fix in a rule that results in it reporting more errors.
    • A new rule is created.
    • A new option to an existing rule is created.
    • An existing rule is deprecated.
  • Major release (likely to break your lint build)
    • A support for old Node version is dropped.
    • A support for old ESLint version is dropped.
    • An existing rule is changed in it reporting more errors.
    • An existing rule is removed.
    • An existing option of a rule is removed.
    • An existing config is updated.

:newspaper: Changelog

:muscle: Contributing

Welcome contributing!

Please use GitHub's Issues/PRs.

Development Tools

  • npm test runs tests and measures coverage.
  • npm run coverage shows the coverage result of npm test command.
  • npm run clean removes the coverage result of npm test command.

Keywords

FAQs

Last updated on 23 Feb 2017

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc