Socket
Socket
Sign inDemoInstall

eslint-plugin-node

Package Overview
Dependencies
102
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
Weekly downloads
3.6M
decreased by-1.11%
Maintainers
1
Install size
1.97 MB
Created
Weekly downloads
 

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

💿 Install & Usage

$ npm install --save-dev eslint eslint-plugin-node
  • Requires Node.js >=6.0.0
  • Requires ESLint >=4.19.1 (plugin:node/recommended preset requires >=5.0.0)

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

.eslintrc.json (An example)

{
    "extends": ["eslint:recommended", "plugin:node/recommended"],
    "rules": {
        "node/exports-style": ["error", "module.exports"],
        "node/prefer-global/buffer": ["error", "always"],
        "node/prefer-global/console": ["error", "always"],
        "node/prefer-global/process": ["error", "always"],
        "node/prefer-global/url-search-params": ["error", "always"],
        "node/prefer-global/url": ["error", "always"],
    }
}

package.json (An example)

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

📖 Rules

  • ⭐️ - the mark of recommended rules.
  • ✒️ - the mark of fixable rules.

Possible Errors

Rule IDDescription
node/no-extraneous-importdisallow import declarations of extraneous packages
node/no-extraneous-requiredisallow require() expressions of extraneous packages⭐️
node/no-missing-importdisallow import declarations of missing files
node/no-missing-requiredisallow require() expressions of missing files⭐️
node/no-unpublished-bindisallow 'bin' files which are ignored by npm⭐️
node/no-unpublished-importdisallow import declarations of private things
node/no-unpublished-requiredisallow require() expressions of private things⭐️
node/no-unsupported-features/es-builtinsdisallow unsupported ECMAScript built-ins on the specified version⭐️
node/no-unsupported-features/es-syntaxdisallow unsupported ECMAScript syntax on the specified version⭐️
node/no-unsupported-features/node-builtinsdisallow unsupported Node.js built-in APIs on the specified version⭐️
node/process-exit-as-throwmake process.exit() expressions the same code path as throw⭐️
node/shebangenforce the correct usage of shebang⭐️✒️

Best Practices

Rule IDDescription
node/no-deprecated-apidisallow deprecated APIs⭐️

Stylistic Issues

Rule IDDescription
node/exports-styleenforce either module.exports or exports
node/prefer-global/bufferenforce either Buffer or require("buffer").Buffer
node/prefer-global/consoleenforce either console or require("console")
node/prefer-global/processenforce either process or require("process")
node/prefer-global/url-search-paramsenforce either URLSearchParams or require("url").URLSearchParams
node/prefer-global/urlenforce either URL or require("url").URL

🔧 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: 2019} into parserOptions.
  • adds Atomics and SharedArrayBuffer into globals.
  • adds this plugin into plugins.

👫 FAQ

🚥 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.

📰 Changelog

💎 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 17 Jul 2018

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