Skip to content
PluginStats

eslint-plugin-n weekly downloads statistics

By eslint-community (4 listings) · npm · ESLint plugins

Additional ESLint's rules for Node.js

View on npm Fresh · Oct 17, 2026

eslint-plugin-n has 3,183,279 recorded weekly downloads on npm, a decrease of 59.6% over the past 30 days.

It ranks #142 of 2,256 tracked npm listings by weekly downloads.

Over 90 days, weekly downloads changed by -58.8%.

PluginStats has 121 daily observations since Jun 19, 2026; the latest is from Oct 17, 2026.

Weekly downloads
3,183,279
Official API · Oct 17, 2026
7-day growth
-57.0%
-4.2M weekly downloads
30-day growth
-59.6%
-4.7M weekly downloads
90-day growth
-58.8%
-4.6M weekly downloads
Rank
#142
Among tracked npm listings

About eslint-plugin-n

eslint-plugin-n

forked from eslint-plugin-node v11.1.0. as the original repository seems no longer maintained.

Additional ESLint rules for Node.js

🎨 Playground

online-playground

💿 Install & Usage

Migrating from eslint-plugin-node? See the migration guide.

| Version | Supported Node.js | Supported ESLint Version | Status |

| 18.x | ^20.19.0 \|\| ^22.13.0 \|\| >=24.0.0 | >=8.57.1 | 🏃‍♂️actively maintained | | 17.x | ^18.18.0 \|\| ^20.9.0 \|\| >=21.1.0 | >=8.23.0 | 🏃‍♂️actively maintained | | 16.x | >=16.0.0 | >=7.0.0 | ⚠️EOL | | 15.x | >=12.22.0 | >=7.0.0 | ⚠️EOL |

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

eslint.config.js

To setup without the recommended configs, you'll need to add the plugin:

package.json (An example)

Configured Node.js version range

The rules get the supported Node.js version range from the following, falling back to the next if unspecified:

1. Rule configuration version 2. ESLint shared setting node.version 3. package.json [engines] field 4. package.json devEngines.runtime field (when name is "node") 5. >=16.0.0

If you omit both the [engines] field and the devEngines.runtime field (with name set to "node"), this rule chooses >=16.0.0 as the configured Node.js version since 16 is the maintained lts (see also Node.js Release Working Group).

For Node.js packages, using the [engines] field is recommended because it's the official way to indicate support:

For Shareable Configs or packages with a different development environment (e.g. pre-compiled, web package, etc.), you can configure ESLint with settings.node.version to specify support.

📖 Rules

💼 Configurations enabled in.\ 🟢 Set in the recommended-module configuration.\ ✅ Set in the recommended-script configuration.\ 🔧 Automatically fixable by the --fix CLI option.\ ❌ Deprecated.

| Name | Description | 💼 | 🔧 | ❌ |

| callback-return | require return statements after callbacks | | | | | exports-style | enforce either module.exports or exports | | 🔧 | | | file-extension-in-import | enforce the style of file extensions in import declarations | | 🔧 | | | global-require | require require() calls to be placed at top-level module scope | | | | | handle-callback-err | require error handling in callbacks | | | | | hashbang | require correct usage of hashbang | 🟢 ✅ | 🔧 | | | no-callback-literal | enforce Node.js-style error-first callback pattern is followed | | | | | no-deprecated-api | disallow deprecated APIs | 🟢 ✅ | | | | no-exports-assign | disallow the assignment to exports | 🟢 ✅ | | | | no-extraneous-import | disallow import declarations which import extraneous modules | 🟢 ✅ | | | | no-extraneous-require | disallow require() expressions which import extraneous modules | 🟢 ✅ | | | | no-hide-core-modules | disallow third-party modules which are hiding core modules | | | ❌ | | no-missing-import | disallow import declarations which import missing modules | 🟢 ✅ | | | | no-missing-require | disallow require() expressions which import missing modules | 🟢 ✅ | | | | no-mixed-requires | disallow require calls to be mixed with regular variable declarations | | | | | no-new-require | disallow new operators with calls to require | | | | | no-path-concat | disallow string concatenation with dirname, filename, and import.meta paths | | | | | no-process-env | disallow the use of process.env | | | | | no-process-exit | disallow the use of process.exit() | 🟢 ✅ | | | | no-restricted-import | disallow specified modules when loaded by import declarations | | | | | no-restricted-require | disallow specified modules when loaded by require | | | | | no-sync | disallow synchronous methods | | | | | no-top-level-await | disallow top-level await in published modules | | | | | no-unpublished-bin | disallow bin files that npm ignores | | | | | no-unpublished-import | disallow import declarations which import private modules | 🟢 ✅ | | | | no-unpublished-require | disallow require() expressions which import private modules | 🟢 ✅ | | | | no-unsupported-features/es-builtins | disallow unsupported ECMAScript built-ins on the specified version | 🟢 ✅ | | | | no-unsupported-features/es-syntax | disallow unsupported ECMAScript syntax on the specified version | 🟢 ✅ | | | | no-unsupported-features/node-builtins | disallow unsupported Node.js built-in APIs on the specified version | 🟢 ✅ | | | | prefer-global/buffer | enforce either Buffer or require("buffer").Buffer | | | | | prefer-global/console | enforce either console or require("console") | | | | | prefer-global/crypto | enforce either crypto or require("crypto").webcrypto | | | | | prefer-global/process | enforce either process or require("process") | | | | | prefer-global/text-decoder | enforce either TextDecoder or require("util").TextDecoder | | | | | prefer-global/text-encoder | enforce either TextEncoder or require("util").TextEncoder | | | | | prefer-global/timers | enforce either global timer functions or require("timers") | | | | | prefer-global/url | enforce either URL or require("url").URL | | | | | prefer-global/url-search-params | enforce either URLSearchParams or require("url").URLSearchParams | | | | | prefer-import/assert-strict | enforce using node:assert/strict instead of node:assert. | | | | | prefer-node-protocol | enforce using the node: protocol when importing Node.js builtin modules. | | 🔧 | | | prefer-process-get-builtin-module | enforce using process.getBuiltinModule() to load Node.js built-in modules | | | | | prefer-promises/dns | enforce require("dns").promises | | | | | prefer-promises/fs | enforce require("fs").promises | | | | | process-exit-as-throw | require that process.exit() expressions use the same code path as throw | 🟢 ✅ | | | | shebang | require correct usage of hashbang | | 🔧 | ❌ |

🔧 Configs

| | Name | | :- | :------------------- | | 🟢 | recommended-module | | ✅ | recommended-script |

About each config:…

Description from the npm listing.

  • eslint
  • eslintplugin
  • eslint-plugin
  • node
  • nodejs
  • ecmascript
  • shebang
  • file
  • path
  • import
  • require

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

eslint-plugin-n weekly downloads on npm, last 90 days: 3,183,279 weekly downloads as of Oct 17, 2026, -58.8% over 90 days.eslint-plugin-nWeekly downloads on npm · Last 90 days3,183,279downloads / week-58.8% over 90 days02M4M6M8M10MJul 19Aug 3Aug 18Sep 2Sep 17Oct 2Oct 17downloads / weekobservedarchived (Internet Archive)no observationsJul 21, 2026 – Oct 17, 2026 · 89 observations · Updated Oc…pluginstats.com
eslint-plugin-n weekly downloads on npm, last 90 days: 3,183,279 weekly downloads as of Oct 17, 2026, -58.8% over 90 days.
PNG SVG

7/30/90-day growth

eslint-plugin-n weekly downloads growth on npm: -57.0% over 7 days, -59.6% over 30 days, -58.8% over 90 days.eslint-plugin-nWeekly downloads growth on npm3,183,279downloads / week now7-day growth-4,227,530 weekly downlo…-57.0%30-day growth-4,688,193 weekly downlo…-59.6%90-day growth-4,551,083 weekly downlo…-58.8%Growth vs. nearest observation to each baseline date · Updated Oct 17, 2026pluginstats.com
eslint-plugin-n weekly downloads growth on npm: -57.0% over 7 days, -59.6% over 30 days, -58.8% over 90 days.
PNG SVG

Ranking history

eslint-plugin-n npm ranking history: currently #142 (by weekly downloads).eslint-plugin-nnpm ranking · by weekly downloads · Last 90 days#142current rank#140#141#142#143#144Jul 21Aug 5Aug 20Sep 4Sep 19Oct 4Oct 19rankOct 18, 2026 – Oct 19, 2026 · 2 observations · Updated Oct 17, 2026pluginstats.com
eslint-plugin-n npm ranking history: currently #142 (by weekly downloads).
PNG SVG

Listing placement

All npm2,256 listings · 113 pages · 1,130 shown · page 8, #2 (overall #142)
All npm: every listing in weekly downloads order
PNG SVG

Listing placement

ESLint plugins253 listings · 13 pages · page 1, #19 (overall #19)
ESLint plugins: every listing in weekly downloads order
PNG SVG

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (121)
Recent weekly downloads observations for eslint-plugin-n
Date (UTC)Weekly downloadsChange vs. previous
3,183,279-598.1K
3,781,343+15.4K
3,765,990-1.6M
5,324,429-1.6M
6,954,1810
6,954,181-305K
7,259,158-151.7K
7,410,809-185K
7,595,835-115.4K
7,711,188-176.2K
7,887,358-166.8K
8,054,135-1.7M
9,796,447-169.7K
9,966,112—

Similar npm ESLint plugins plugins

All 20 eslint-plugin-n alternatives

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/eslint-plugin-n. First seen Oct 16, 2026; last successful collection Oct 19, 2026. See the methodology.