Разработчики 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путём удаления лишних проверок и более эффективной системы планирования обратных вызовов.
