Unless you're doing a lot more serverside js than just running the build script for your react app you are not going to benefit much. Stick to whatever the active LTS version is and call it a day. Looking at the current schedule 18 goes into maintenance mode in late October. Answer from Santa_Fae on reddit.com
🌐
Medium
medium.com › @Games24x7Tech › node-js-v20-upgrade-guide-best-practices-and-performance-insights-f76d7ace09ff
Node.js v20 upgrade guide: Best Practices and Performance Insights | by Games24x7 Blogs | Medium
September 6, 2024 - Node.js v20 upgrade guide: Best Practices and Performance Insights As of April 2023, Node.js versions less than v16 have reached their end of life, marking an essential milestone for developers and …
🌐
Node.js
nodejs.org › en › blog › announcements › v20-release-announce
Node.js — Node.js 20 is now available!
In Node.js 20, building a single executable app now requires injecting a blob prepared by Node.js from a JSON config instead of injecting the raw JS file. ... This writes the blob to the sea-prep.blob file.
🌐
GitHub
github.com › nodejs › node › issues › 51048
Breaking changes in 18.19.0 (including The --loader flag was deprecated in Node v20.6.0) · Issue #51048 · nodejs/node
December 4, 2023 - $ node -v v18.19.0 $ npx tsx@3 index.ts node:internal/process/esm_loader:40 internalBinding('errors').triggerUncaughtException( ^ Error: tsx must be loaded with --import instead of --loader The --loader flag was deprecated in Node v20.6.0 at X (file:///home/ANT.AMAZON.COM/calebev/tmp/node_modules/tsx/dist/esm/index.mjs:1:1920) at Hooks.addCustomLoader (node:internal/modules/esm/hooks:202:24) at Hooks.register (node:internal/modules/esm/hooks:168:16) at async initializeHooks (node:internal/modules/esm/utils:167:5) at async customizedModuleWorker (node:internal/modules/esm/worker:104:24) Node.js v18.19.0
Published   Dec 04, 2023
🌐
GitHub
github.com › nodejs › node › blob › main › doc › changelogs › CHANGELOG_V20.md
node/doc/changelogs/CHANGELOG_V20.md at main · nodejs/node
[362b01b275] - doc: add esm examples to node:string_decoder (Alfredo González) #55507 · [29862ae105] - doc: add jazelly to collaborators (Jason Zhang) #55531 · [c1b63e5e6b] - doc: changed the command used to verify SHASUMS256 (adriancuadrado) #55420
Author   nodejs
🌐
ITMagination
itmagination.com › blog › introducing-node-js-20-new-features-updates-and-improvements
Node.js 20: New Features, Updates, and Improvements
November 20, 2024 - If you plan to upgrade Node 20 from your Node 18, or Node 16, you must be aware of any breaking changes. This time around, the team behind the JavaScript runtime listed only one change that would cause problems. It’s the deprecation of url.parse() ...
🌐
GitHub
github.com › nodejs › node › blob › main › CHANGELOG.md
node/CHANGELOG.md at main · nodejs/node
Please use the following table to find the changelog for a specific Node.js release. ... 24.12.0 24.11.1 24.11.0 24.10.0 24.9.0 24.8.0 24.7.0 24.6.0 24.5.0 24.4.1 24.4.0 24.3.0 24.2.0 24.1.0 24.0.2 24.0.1 24.0.0 · 22.21.1 22.21.0 22.20.0 22.19.0 22.18.0 22.17.1 22.17.0 22.16.0 22.15.1 22.15.0 22.14.0 22.13.1 22.13.0 22.12.0 22.11.0 22.10.0 22.9.0 22.8.0 22.7.0 22.6.0 22.5.1 22.5.0 22.4.1 22.4.0 22.3.0 22.2.0 22.1.0 22.0.0
Author   nodejs
🌐
Node.js
nodejs.org › en › blog › announcements › v22-release-announce
Node.js — Node.js 22 is now available!
Testing your applications and modules with Node.js 22 helps to ensure the future compatibility of your project with the latest Node.js changes and features. Also of note is that Node.js 18 will go End-of-Life in April 2025, so we advise you to start planning to upgrade to Node.js 20 (LTS) or Node.js 22 (soon to be LTS).
Find elsewhere
🌐
Node.js
nodejs.org › en › blog › migrations › v22-to-v24
Node.js — Node.js v22 to v24
If you are migrating from Node.js 22 LTS, the following summarizes the breaking changes that came in Node.js 23.0.0 and Node.js 24.0.0.
🌐
Microsoft Learn
learn.microsoft.com › en-us › answers › questions › 2262448 › how-to-update-my-app-service-(node-version-18-to-2
How to update my app service (node version 18 to 22 ) ? - Microsoft Q&A
Hi Sanjuna Guhanathan, You can change the Runtime stack of the App to Node 20 in Azure App Service => Configuration => General Settings , change the Major version to Node 20. To avoid any breaking changes to the Application, check the below ...
🌐
Bacancy Technology
bacancytechnology.com › bacancy technology › blog › node.js
What’s New In Node 20: Node.js 20 Features and Updates
December 29, 2023 - The Node.js team and community always break barriers worldwide with their latest features and updates, following the same tradition and with the bang-on success of Node 19. The Node.js community is back with the latest version of Node.js 20. In this blog post, we have covered What’s New in Node 20 features and updates. In addition, we have compiled information regarding the changes ...
🌐
Node.js
nodejs.org › en › blog › release › v20.0.0
Node.js — Node.js v20.0.0 (Current)
[295b2f3ff4] - (SEMVER-MAJOR) src: update NODE_MODULE_VERSION to 115 (Michaël Zasso) #47251 · [3803b028dd] - (SEMVER-MAJOR) src: share common code paths for SEA and embedder script (Anna Henningsen) #46825 · [e8bddac3e9] - (SEMVER-MAJOR) src: apply ABI-breaking API simplifications (Anna Henningsen) #46705
🌐
Reddit
reddit.com › r/node › nodejs v16 vs v20
r/node on Reddit: Nodejs v16 vs v20
January 7, 2024 -

Hello everyone! I'm really into updating my nodejs version on my system, but I'm seeing quite some downs and ups about the v18 and v20 vs the v16. I don't really know how to benchmark and test all that versions, also I'm into learning it someday. Anyone have some graphics or data that you want to share about like the performance comparation between this two/three versions of node? Also what do you think about the new stuff, the ups and downs, anything you want to comment?!

Edit: So, I read all of the comments and searched about it, thank you all for the replies. In a nutshell, node 20 in terms of performance, is the same, if not even better than node 16, in terms of security, I read the changelogs, and omg, there was a BUNCH of exploits that were patched, also a lot of bugs in standard functoin were found and resolved. u/Climax708 mentioned about a benchmark and his recently contribution, I read the results and what they had there, and are actually much better than I expected. Here the link he provided

Also node 20 has new stuff that are now officialy stable, I recommend to see for yourself

Also, u/xabrol and u/vorticalbox mentioned two tools that seems very useful depending the project you're working on, node nvm and a asdf. They allow you to use/manage different versions of node very easily. (asdf allow not only node but more environments too)

🌐
Reddit
reddit.com › r/node › upgrade web app from node version 14.x to 20.x
r/node on Reddit: Upgrade web app from Node version 14.x to 20.x
September 12, 2024 -

Our application is built upon Vue, Nunjucks, Express and around 80 other dependencies. Around 30 packages have been deprecated. It’s a live application with around 15 million daily viewers. Currently the application is built upon Node 14.x version and they haven’t upgrade the Node for a few years.

Now they have delegated the task to me to upgrade the application to Node 20.x.

Tbh, I’m a bit overwhelmed since the tech debt is massive and currently I’m the only one working on it, so I need your help to figure our the correct direction from which to approach this task.

So, far I could figure two possible approaches:

  1. To install node 20.x in the local using nvm and the npm install, then run npm build and troubleshoot all the build errors one by one.

  2. To start from an empty folder with node 20.x and start migrating few files at a time by removing most features and then adding stuff bit by bit to make the application work at the simplest level and then build upon it.

Please suggest the correct approach for handling this task.

Thanks!

Top answer
1 of 5
65
I would start by doing incremental update from 14 to 16 then fix any breaking changes including the projects dependencies. Then goes from 16 to 18 and repeat the cycle. Eventually you will end up with version 20. It will take quite some time but I think if something broke it's easier to track and isolate and then fix what's broken
2 of 5
14
I've just finished doing Node 12-16. I feel your pain. With the number of dependencies you've got I would recommend going via Node 16 and 18 and test everything at each stage. If it's not too painful for your devops processes, release incremental versions so you can get real feedback, and you can demonstrate your progress to management. NVM will be your friend, as will the engines field in package.json. That'll make sure you're always running the right version. My first step was a REALLY boring but necessary one. Go through the changelog for EVERY dependency and make a note of which Node versions each major version supports. This means that you won't upgrade anything you don't need to, but also you won't waste time upgrading something too far. Always upgrade to the lowest version you can get away with otherwise you'll be creating needless work for yourself. My other bit of advice would be to not refactor ANYTHING unless you absolutely have to. I found myself getting stuck in the weeds too many times because I was getting sidetracked fixing issues I found along the way. You'll have to do some as there will be breaking changes but resist temptation or you'll end up way behind schedule. With any luck going from 14-16 will be the most painful as pretty much everybody has dropped support for 14. There's still some support out there for 16 and 18 is still current, so 18-20 should be easy. Be under no illusions about how much work this will be, but if you're careful it shouldn't be difficult work. Read the documentation carefully, and good luck!
🌐
Node.js
nodejs.org › en › blog › release › v22.20.0
Node.js — Node.js v22.20.0 (LTS)
For official Node.js builds, or ... date of 2027-04-30 as the previously bundled OpenSSL 3.0.x goes out of support in September 2026....
🌐
Electron
electronjs.org › blog › electron-20-0
Electron 20.0.0 | Electron
August 2, 2022 - Renderers are now sandboxed by default unless nodeIntegration: true or sandbox: false is specified. #35125 · Added safeguards when building native modules with nan. #35160 ... Below are breaking changes introduced in Electron 20.
🌐
SitePoint
sitepoint.com › blog › javascript › what’s new in node.js 20
What's New in Node.js 20 — SitePoint
November 11, 2024 - In general, you should opt for the even-numbered LTS version unless you require a specific feature in an experimental release and intend to upgrade later. That said, Node.js 20 is new and the website advises you continue with version 18 while the development team fixes any late-breaking issues.
🌐
Webmobtech
webmobtech.com › blog › whats-new-in-node-20
What’s New in Node 20: Node.JS 20 Features and Updates
Explore the new features and updates in Node.js 20. Discover enhanced performance, improved security, and innovative tools for developers.
🌐
GitHub
github.blog › home › changelogs › github actions: transitioning from node 16 to node 20
GitHub Actions: Transitioning from Node 16 to Node 20 - GitHub Changelog
March 22, 2025 - Our plan is to transition all actions to run on Node 20 by Spring 2024. We will actively monitor the migration's progress and gather community feedback before finalizing the transition date.