Skip to content

EBADENGINE for yo eslint:plugin under Node.js 18 #231

@MikeMcC399

Description

@MikeMcC399

Current behavior

When yo eslint:plugin is used to generate a new plugin, using the lowest Node.js version 18.18.0
listed under README > Installation, npm EBADENGINE warnings are output for

npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'commander@14.0.1',
npm WARN EBADENGINE   required: { node: '>=20' },
npm WARN EBADENGINE   current: { node: 'v18.18.0', npm: '9.8.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'editorconfig@3.0.1',
npm WARN EBADENGINE   required: { node: '>=20' },
npm WARN EBADENGINE   current: { node: 'v18.18.0', npm: '9.8.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'minimatch@10.0.1',
npm WARN EBADENGINE   required: { node: '20 || >=22' },
npm WARN EBADENGINE   current: { node: 'v18.18.0', npm: '9.8.1' }
npm WARN EBADENGINE }

This is caused by a regression in eslint-doc-generator@2.2.0, released on Jun 19, 2025. This npm module dropped support for Node.js 18 without bumping its major version.

Expected behavior

When yo eslint:plugin is used to generate a new plugin, the README > Installation documentation and the engines key in package.json should specify version ranges of Node.js that do not cause EBADENGINE warnings.

Versions

Component Version
Ubuntu 24.04.3 LTS
Node.js v18.18.0 EOL
npm 9.8.1
yo 5.1.0
generator-eslint 5.2.2

Steps to reproduce

npm install yo@latest -g
npm install generator-eslint@latest -g
cd $(mktemp -d)
yo eslint:plugin

and accept defaults:

$ yo eslint:plugin
? What is your name? Tester
? What is the plugin ID? template-test
? Type a short description of this plugin: Template test
? Does this plugin contain custom ESLint rules? Yes
? Does this plugin contain one or more processors? No
   create package.json
   create eslint.config.mjs
   create lib/index.js
   create README.md

Logs

Running npm install for you to install the required dependencies.
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'commander@14.0.1',
npm WARN EBADENGINE   required: { node: '>=20' },
npm WARN EBADENGINE   current: { node: 'v18.18.0', npm: '9.8.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'editorconfig@3.0.1',
npm WARN EBADENGINE   required: { node: '>=20' },
npm WARN EBADENGINE   current: { node: 'v18.18.0', npm: '9.8.1' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'minimatch@10.0.1',
npm WARN EBADENGINE   required: { node: '20 || >=22' },
npm WARN EBADENGINE   current: { node: 'v18.18.0', npm: '9.8.1' }
npm WARN EBADENGINE }

added 242 packages, and audited 243 packages in 5s

71 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

Other

  • Related issue EBADENGINE installing under Node.js 18 bmish/eslint-doc-generator#807

  • Node.js 18 reached end-of-life on Apr 30, 2025

  • Since eslint-doc-generator@2.2.0 introduced support for flat configurations, pinning to an earlier version in order to support Node.js 18 would not be desirable.

  • This repo (generator-eslint) should consider now dropping support for Node.js 18, 21 and 23, and then releasing a new major version. Node.js 25 is also close to being released (planned date Oct 15, 2025) and could be added to the CI workflow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Implementing

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions