Skip to content

feat!: drop support for Node.js 20, require 22.12.0+#8356

Draft
serhalp wants to merge 1 commit into
mainfrom
serhalp/feat/drop-nodejs-20
Draft

feat!: drop support for Node.js 20, require 22.12.0+#8356
serhalp wants to merge 1 commit into
mainfrom
serhalp/feat/drop-nodejs-20

Conversation

@serhalp

@serhalp serhalp commented Jul 23, 2026

Copy link
Copy Markdown
Member

Summary

Node.js 20 reached End-of-Life (EOL) in April 2026, three months ago.

We require 22.12.0+ specifically because that version added require(esm) support. Many of our own packages that Netlify CLI depends on as well as much of the community has been requiring 22.12.0+ in order to modernize and slim down dependency trees.

@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4f9b6607-919a-4369-afb7-6103ee96efb4

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch serhalp/feat/drop-nodejs-20

Comment @coderabbitai help to get the list of available commands.

@netlify

netlify Bot commented Jul 23, 2026

Copy link
Copy Markdown

Deploy Preview for steady-pastelito-09e39e failed.

Name Link
🔨 Latest commit 372db1d
🔍 Latest deploy log https://app.netlify.com/projects/steady-pastelito-09e39e/deploys/6a626e017d07b60009ce520d

@github-actions

Copy link
Copy Markdown

📊 Benchmark results

Comparing with f214e69

  • Dependency count: 1,127 (no change)
  • Package size: 379 MB (no change)
  • Number of ts-expect-error directives: 358 (no change)

Comment thread src/utils/nodejs-compile-cache.ts Outdated
// The docs recommend turning this off when running tests to generate precise coverage
if (process.env.NODE_ENV === 'test') return

// TODO(serhalp): Consider enabling unconditionally now that we require Node.js 22.12.0+.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would have been a hard-break for 100% of users that are on an older Node.js version, for almost no benefit (deleting two lines of code), so I deferred.

Node.js 20 reached End-of-Life (EOL) in April 2026, three months ago.

We require 22.12.0+ specifically because that version added `require(esm)` support. Many of our own
packages that Netlify CLI depends on as well as much of the community has been requiring 22.12.0+ in
order to modernize and slim down dependency trees.
@serhalp
serhalp force-pushed the serhalp/feat/drop-nodejs-20 branch from 372db1d to 7e168dd Compare July 23, 2026 21:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant