close icon
daily.dev platform

Discover more from daily.dev

Personalized news feed, dev communities and search, much better than what’s out there. Maybe ;)

Start reading - Free forever
Continue reading >

Node.js v20 LTS is now generally available and it's awesome!

Node.js v20 LTS is now generally available and it's awesome!
Author
Nimrod Kramer
Related tags on daily.dev
toc
Table of contents
arrow-down

🎯

Discover the latest features and improvements in Node.js v20 LTS, including faster performance, long-term support, new tools, and enhanced V8 engine. Get started with installation and migration tips.

Node.js v20 LTS is now available, offering significant upgrades and new features that make it a compelling choice for developers. Here's what you need to know:

  • Faster Performance: Enjoy improvements like faster file handling and web request processing.
  • Long-Term Support: This version will have updates and security fixes until April 2026.
  • New Features: Includes an experimental permission model, a stable test runner, and the ability to create single executable applications.
  • Updated V8 Engine: The JavaScript engine update means better execution of JS code.

Whether you're installing it on Windows, macOS, or Linux, Node.js v20 promises a smooth setup process. If you're migrating from an older version, incremental upgrades are recommended to handle any breaking changes with ease. For those developing or hosting web projects, Vercel offers a streamlined platform ideally suited for deploying fast and secure sites with Node.js applications.

Before jumping to v20, consider if your project's dependencies are fully compatible. Node.js 18 remains a stable choice, with support until April 2025. However, exploring v20 can give you a head start on leveraging the latest features for your development projects.

Understanding Long-Term Support Releases

Long-Term Support (LTS) versions of Node.js are special because they get important updates and fixes for a long time. This makes them super reliable for big, serious projects:

  • LTS versions are ready for the real world and are the best choice for apps that people use for work or to run a business.
  • The current LTS version gets this special treatment for 30 months.
  • Using an LTS version means your app is more likely to keep running smoothly for a long time.

Why the Node.js v20 LTS Release Matters

Node.js

The latest LTS version, Node.js v20, has some cool updates:

  • It's got a newer version of the V8 engine, which means JavaScript code runs better and faster.
  • There are new tools and parts, like something called globalThis and Web Crypto, that you can use to do more stuff.
  • They've made some improvements to help programmers find and fix problems easier, and to make building apps quicker.
  • It's even faster to put together parts of your app that work closely with the computer's own code.

Since it's an LTS release, lots of people will start using Node.js v20. It's a good idea to get on board and see what new things you can do with it.

Getting Started with Node.js v20

Node.js

Installation on Windows

To get Node.js v20 on your Windows computer:

  • Head over to the Node.js downloads page and grab the Windows installer (it's an MSI file) for the latest v20 version.
  • Open the installer and just go with what it suggests, clicking 'Next' until it's done.
  • Once it's finished, restart your computer.
  • To check if it worked, open a command prompt and type node -v. You should see something like this:
v20.0.0

If you see that version number, you're all set with Node.js.

Installation on macOS

For macOS users wanting Node.js v20:

  • You can use Homebrew, which is a tool that helps install software, to get Node.js v20 by typing:
brew install node@20
  • To make sure it's installed, type this and check the version:
node -v
v20.0.0

Installation on Linux

If you're using Linux, like Ubuntu or Fedora, here's how to install Node.js v20:

  • Use your system's package manager. For Ubuntu users, you would type:
sudo apt install nodejs
  • Check if the right version is installed by typing:
node -v
v20.0.0

Verifying Installation and Environment Setup

To make sure Node.js v20 is ready to go:

  • Make a new folder for a project and get it set up:
mkdir my-app 
cd my-app
npm init -y
  • Then, create a app.js file that just prints something to the console.
  • Run that file with Node.js:
node app.js

If you see your message pop up, that means Node.js is working and ready to run your code.

Major Features and Improvements

Node.js v20 LTS is full of updates that make it work better, safer, and easier to use. Here are some of the big changes.

Experimental Permission Model

Permission Model

Node.js v20 has a new way to help keep your app safe. It lets you control what parts of the computer your app can use, like reading and writing files or starting new processes. You can turn these permissions on with special settings like --allow-fs-read and --allow-fs-write.

You can learn more about how to use this in the Permission Model documentation.

Stable Test Runner

Test Runner

Now, Node.js comes with its own tool for checking if your code works right. This means you don't need to get a separate tool to test your code. It's designed to be easy to use and understand.

V8 JavaScript Engine Updated to 11.3

The engine that makes JavaScript run in Node.js is now faster and better. This means your apps can run up to 15% faster. It also adds new ways to work with text in different languages.

Synchronous import.meta.resolve()

There's a new feature that lets your app start up quicker by making some things happen at the same time. This can make complex apps start up to 10% faster.

Single Executable Applications

Node.js has a new experimental feature that lets you put your whole app and everything it needs into one file. This makes it easier to share or move your app because everything is in one place.

Performance Improvements

Node.js made some parts of it work better, so things like loading web pages or handling lots of tasks at once can be up to 30% faster. This is great for apps that need to do a lot of things quickly.

Deep Dive into Key Features

Leveraging the Permission Model

Node.js v20 introduces a new way to manage what parts of your computer the app can use. This is great for keeping things safe because it limits what can go wrong if someone finds a way into your app.

Here are some important settings you can use:

  • --allow-fs-read: Lets the app read files
  • --allow-fs-write: Lets the app write files
  • --allow-child-process: Lets the app start new processes
  • --allow-worker: Lets the app start new worker threads

You can also check and ask for permissions while the app is running:

if (process.getPermissionStatus('fs') !== 'granted') {
  process.requestPermission('fs');
}

For more info, you can look at the Permission Model documentation.

Authoring Unit Tests with Stable Test Runner

With Node.js v20, you don't need an extra tool to check if your code is working right. It comes with a test runner built in.

To make a test, you start by using the node:test module:

import { describe, it } from 'node:test';

Group your tests like this:

describe('Array', () => {

  describe('#indexOf()', () => {
    it('should return -1 when not present', () => {
      assert.equal([1,2,3].indexOf(4), -1);
    });
  });

});

The test runner has tools for setting up tests, checking results, faking parts of your app, and more. To run your tests, just type:

node --test test.js 

Check out the unit testing tutorial to learn more.

Benchmarking Performance Improvements

Node.js v20 has made some parts of apps run faster, like:

  • Reading and writing files is up to 30% faster
  • Handling web requests is 15% faster
  • Starting up the app is quicker by 10%

You can see these improvements yourself with these examples:

// Checking file reading speed
const { readFile } = require('fs'); 

console.time('readfile');
readFile('/path/to/file', () => {
  console.timeEnd('readfile');  
});
// Checking web request speed  
const http = require('http');

const server = http.createServer((req, res) => {
  res.end(); 
});

server.listen(3000);

Try testing how many requests the server can handle and compare it to older versions of Node.js.

sbb-itb-bfaad5b

Migrating from Older Versions

Why Migrate to v20 LTS

Node.js v20 LTS is a big step up from older versions:

  • Better speed - Your apps can work up to 30% faster with files, handle web stuff 15% faster, and start quicker by 10%.
  • Cool new stuff - It has built-in testing, a way to control what your app can do, and updated ways to use JavaScript code.
  • Support for longer - You get important fixes and security updates for 30 months.

Upgrading means your apps will run better and be safer.

Performing Incremental Upgrades

If you're using an older version, don't jump straight to v20:

  1. First move to the latest LTS (v18)
  2. Then go to v19
  3. And finally, switch to v20

This way, you can adjust little by little and handle any big changes easier.

Handling Breaking Changes

Look out for these changes in v20 that might cause issues:

  • Import assertions - You might need to add type: module in your package.json.
  • file:// URLs - These aren't used by default anymore, you might have to turn them on.
  • Old dependencies - Make sure they work with v20.

Fix any problems by changing your code or using different solutions.

Modifying Dependency Versions

Make sure your tools work with Node.js v20:

  • Express - Get version 5.0.0 or newer
  • Mongoose - You need version 6.4.0 or newer
  • Axios - Should be fine, the latest version works

Update these tools if you need to keep everything running smoothly.

Testing and Debugging

Make sure to test everything carefully and fix any bugs:

  • Use logs to help you see what's happening.
  • Try things out bit by bit in the REPL.
  • Use testing tools to see how it handles a lot of users.
  • Use v20's testing features to check your code.

Testing well helps make sure upgrading goes well.

Vercel

Vercel is a platform that makes it easy to get websites and web apps up and running. It's especially good for projects that need to be fast and secure.

Overview

Here's what you need to know about Vercel:

  • It's made by the same people who created Next.js, which helps make websites fast.
  • Every time you update your code, Vercel automatically updates your site or app.
  • It sends your files and data all over the world so people can load your site quickly, no matter where they are.
  • Vercel is great for adding backend features like serverless functions without a lot of hassle.
  • You can start for free, and if you need more, their prices are reasonable.
  • It's designed to be easy for developers to use, making work smoother.

Key Benefits

Choosing Vercel comes with perks:

  • Speed - Your site loads quickly everywhere because of Vercel's global network.
  • Scale - It can handle lots of visitors at once, automatically adjusting as needed.
  • Reliability - Your site is always up and running with backups in different places.
  • Productivity - Features like automatic updates and tools for teamwork mean you get more done faster.
  • Security - Your site is safe with things like HTTPS and protection against attacks.

Integrations and Ecosystem

Vercel works well with many web development tools and languages, like Next.js, React, and Vue. It also fits into your existing workflow with:

  • Git - for automatic site updates
  • GitHub/GitLab - for managing your code
  • npm - for adding packages
  • Serverless Functions - for backend features
  • Analytics - to see how your site is doing

There's also a place on Vercel where you can find add-ons and a community of developers sharing their work.

Conclusion

Vercel is all about making web development less of a headache. It's built to handle the technical stuff, like making sure your site is fast and secure, so you can focus on creating. A lot of web developers like it because it solves common problems in a straightforward way.

When will Node.js 20 become LTS?

Node.js 20 is set to become a Long Term Support (LTS) version in October 2023. This means starting from then, it will get important updates and fixes until April 2026. The team behind Node.js is working hard to make sure everything is ready for this big step.

Is Node.js 20 a stable version?

Yes, Node.js 20 is stable, but it has a few new features that are still being tested. For example, the tools for checking how well your code works are still new and might change a bit in the future. But don't worry, the main parts of Node.js 20 are solid and dependable.

How to install Node.js v20?

If you're using Ubuntu 20.04 and want to install Node.js 20, follow these steps:

sudo apt update
sudo apt upgrade
sudo apt install curl 
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install nodejs

After installing, you can check if it worked by typing node --version in the terminal.

Should I upgrade to Node.js 20?

Right now, sticking with Node.js 18 might be a safer choice since it will be supported until April 2025. Not all software is ready for Node.js 20 yet. But, trying out Node.js 20 can give you a sneak peek at new features. If you run into any issues, you can always switch back.

Related posts

Why not level up your reading with

Stay up-to-date with the latest developer news every time you open a new tab.

Read more