Nasza strona używa cookies. Korzystając ze strony, wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki. Rozumiem

Node.js 16 już jest!

Sprawdź, jakie nowości i usprawnienia pojawiły się w najnowszej wersji Node.js, czy Node.js 16.
Node.js 16 już jest!

Właśnie pojawił się Node.js 16. Nowa wersja zawiera takie nowości i usprawnienia, jak przebudowane binarki Apple Silicon oraz V8 w wersji 9.0. W Node.js 16 znajdziemy również instalator Mac, dostarczony jako gruby plik binarny i będzie on zawierał pliki architektury Intela oraz ARM. Ważnym usprawnieniem w Node.js 16 jest również dodanie kilku dodatkowych stabilnych API. 

Najnowsze wydanie można pobrać stąd. Do uruchomienia można również użyć Node Version Manager na UNIX, aby zainstalować Node.js przy pomocy nvm install 16. A oto dziennik zmian w Node.js 16. 

W dalszej części artykułu dokładniej przyjrzymy się niektórym nowinkom, które twórcy wprowadzili w wersji 16.


Aktualizacja V8

Nowa wersja silnika V8 JavaScript, czyli V8 9.0, daje nam wiele usprawnień związanych z wydajnością. Co więcej, dzięki tej aktualizacji, Node.js jest na bieżąco z najnowszymi funkcjami języka JavaScript. Wersją, z której korzystało Node.js 15, było z kolei V8 8.6. 

Aktualizacja ta dodaje indeksy dopasowań regex. Funkcja ta pozwala na odczytanie indeksów początku i końca przechwyconego ciągu znaków. Taka tablica stworzona z wcześniej wspomnianych indeksów jest dostępna dzięki właściwości .indices, kiedy wyrażenie regularne ma flagę /d

Oto przykład kodu z oficjalnego wpisu dotyczącego Node.js 16:

> const matchObj = /(Java)(Script)/d.exec('JavaScript');

undefined

> matchObj.indices

[ [ 0, 10 ], [ 0, 4 ], [ 4, 10 ], groups: undefined ]

> matchObj.indices[0]; // Match

[ 0, 10 ]

> matchObj.indices[1]; // First capture group

[ 0, 4 ]

> matchObj.indices[2]; // Second capture group

[ 4, 10 ]

Więcej informacji na temat nowego V8 znajdziecie tutaj


Nowe API

W Node.js 16 wprowadzone zostało nowe API - nosi ono nazwę Timers Promises API. Zapewnia zestaw funkcji timera, które zwracają obiekty Promise. Nie ma więc wtedy potrzeby korzystania z util.promisify().

Oto przykład kodu pochodzący z oficjalnego wpisu na temat Node.js 16.

import { setTimeout } from 'timers/promises';

async function run() {

  await setTimeout(5000);

  console.log('Hello, World!');
}
run();


API to zostało dodane już wersji 15 - tym razem awansuje jednak z funkcji eksperymentalnej do funkcji stabilnej. 


Apple Silicon w Node.js

Jak wspominaliśmy wcześniej Node.js 16 będzie pierwszą wersją tego środowiska uruchomieniowego zawierającą wcześniej przygotowane binarki dla Apple Silicon. Dostarczone zostały tutaj oddzielne pliki dla architektury Intela, czyli darwin-x64, oraz dla architektury ARM - darwin-arm64

Instalator macOS będzie zawierał obydwie binarki.


Inne funkcje

W Node.js funkcje dodaje się na bieżąco. To dlatego, wiele z nich, które są dostępne w 16, były dostępne już w wersji 15. Oto niektóre:

  • Eksperymentalna implementacja Web Crypto API
  • npm 7
  • Stabilna implementacja AbortController, oparta na AbortController Web API
  • Stabilna implementacja Source Maps v3


Wsparcie

Nowe wydanie Node.js staje się jednocześnie następną wersją LTS, czyli Long Term Support. Node.js 12 będzie mieć wsparcie do kwietnia 2022, 14 - do kwietnia 2023, a Node.js 10 będzie wspierany już tylko do końca kwietnia 2021. 

Więcej szczegółów możecie znaleźć tutaj

Rozpocznij dyskusję

Lubisz dzielić się wiedzą i chcesz zostać autorem?

Podziel się wiedzą z 160 tysiącami naszych czytelników

Dowiedz się więcej