-
Notifications
You must be signed in to change notification settings - Fork 25k
Node.js: Drop support for EOL majors (v21,v23), and old minors #55114
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Job Summary for GradleTest All :: run_fantom_tests
|
…nd EOL v21,v23 (#55114) Summary: Pull Request resolved: #55114 Our official [docs](https://reactnative.dev/docs/set-up-your-environment#node--watchman) require: > Node 20.19.4 or newer Currently, our `package.json#engines` fields express this as `"node": ">= 20.19.4"` This is a bit imprecise because of Node's overlapping release lines - e.g. v24.0.0 is actually older than v20.19.4 (2025-07-15), and the whole v21 line was already EOL before v20.19.4. The release *date* is relevant because Node.js frequently backports the most important updates - notably, `require(esm)` is already stable in Node 20.19 but is not unflagged in v22 until v22.12. This makes the `package.json#engines` requirement truer to the documented requirement, dropping some old minors and EOL majors that prevent us using features included in v20.19. Notably, `require(esm)` is stable and unflagged on all versions supported from this diff. - v21 and v23 are EOL, so are dropped. - v22.13 pre-dates 20.19.4 and is the first to have unflagged silent `require(esm)` - v24.3.0 pre-dates 20.19.4 and is the first to unflag TS-stripping - Support v25 and newer. Changelog: [General][Breaking] Drop support for EOL Node.js lines and old minors. Differential Revision: D90467358
2f00a07 to
3d6a749
Compare
|
This pull request was successfully merged by @robhogan in 3d6a749 When will my fix make it into a release? | How to file a pick request? |
Job Summary for GradleTest All :: run_fantom_tests
|
cortinico
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Review automatically exported from Phabricator review in Meta.
|
Thanks for this PR, @robhogan - I was asked to give some feedback from Expo, and we're pretty happy with this, the only thing we'd like to ask for is if you have any thoughts on the policy for both future deprecations and new releases of Node - How should they be handled? Any thoughts on this? Thanks <3 |
Summary:
Our official docs require:
Currently, our
package.json#enginesfields express this as"node": ">= 20.19.4"This is a bit imprecise because of Node's overlapping release lines - e.g. v24.0.0 is actually older than v20.19.4 (2025-07-15), and the whole v21 line was already EOL before v20.19.4.
The release date is relevant because Node.js frequently backports the most important updates - notably,
require(esm)is already stable in Node 20.19 but is not unflagged in v22 until v22.12.This makes the
package.json#enginesrequirement truer to the documented requirement, dropping some old minors and EOL majors that prevent us using features included in v20.19.Notably,
require(esm)is stable and unflagged on all versions supported from this diff.require(esm)Changelog:
[General][Breaking] Drop support for EOL Node.js lines and old minors.
Differential Revision: D90467358