Разработчики Node.js сообщили о выпуске версии 21, в которой обновили JavaScript-движок V8 до 11.8, включили стабильные версии fetch
и WebStreams
. В конце октября Node.js станет единственной актуальной версией, а Node.js 20 перейдёт в LTS. Планируется, что 21 версия будет поддерживаться следующие шесть месяцев.

Основные нововведения:
модули
fetch
иWebStreams
получили статус стабильных после недавнего обновления. Это затрагивает модулиWebStreams
,FormData
,Headers
,Request
,Response
, иfetch
, разработчикам следует обратить внимание;добавили экспериментальную имплементацию
WebSocket
, которую можно активировать с помощью флага--experimental-websocket
;включили JavaScript-движок V8, который обеспечивает поддержку новых функций и улучшенную производительность;
во время запуска тестов теперь можно использовать glob-выражения в параметрах
--test
. Это позволяет выполнять тесты более гибко и удобно. К примеру, все файлы.test.js
в нескольких директориях проекта можно запустить с помощью командыnode --test **/*.test.js
;появился экспериментальный флаг
--experimental-default-type
, с помощью которого можно изменить систему модулей по умолчанию. Важно отметить, что модули ES и CommonJS с явно определённым типом не затрагиваются. Под флаг попадают только модули CommonJS с неявным определением, которое по умолчанию будут интерпретироваться как ES;если передать флаг
--experimental-wasm-modules
, то файлы без расширений будут восприниматься как WebAssembly, если они начинаются на\0asm
;удалили поддержку
globalPreload
, вместо этого рекомендуется использоватьinitialize
для установки связи между потоками иregister
для отправки данных из потока приложения;иногда при записи данных в файл они могут некоторое время оставаться доступными для последующих операций. В этом выпуске добавили опцию
flush
в семейство функцийfs.writeFile
, которая принудительно очищает файлы;оптимизировали потоки
Writable
иReadable
путём удаления лишних проверок и более эффективной системы планирования обратных вызовов.