Node 18 |verified| May 2026
Let's look under the hood. 1. Native Fetch API (No More node-fetch ) For years, making an HTTP request in Node meant one of two things: installing node-fetch or using axios . It felt archaic that the runtime didn't include the same fetch your browser had.
Node 18 reached EOL (End of Life) in April 2025. That means no more security patches. Running it today is a security risk unless your app is completely offline.
// Before Node 18 (and 17.5 experimental) const fetch = require('node-fetch'); // After Node 18 async function getData() const res = await fetch('https://api.example.com/data'); const data = await res.json(); console.log(data); node 18
But as of April 2026, Node 18 belongs in the history books—not your production servers. If you haven't migrated to Node 20 (and soon, 22), treat this as your wake-up call.
However, many enterprises move slowly. If you're maintaining a production app on Node 18, here is your upgrade path: Let's look under the hood
Node 18 fixed that. By shipping the , it finally aligned the server with the browser.
Released in April 2022, Node 18 entered LTS (Long-Term Support) later that year and officially reached its End-of-Life in April 2025. So, why are we writing about an "old" version in 2026? It felt archaic that the runtime didn't include
Upgrade your dependencies or use --openssl-legacy-provider (not recommended for production). The node: Protocol Node 18 strongly encourages using the node: import prefix for built-in modules. This is mandatory if you use ES modules ( "type": "module" in package.json ).