Вышел Node.js 22: обзор главных нововведений и изменений
Сообщество разработчиков JavaScript встретило важное событие — состоялся официальный релиз Node.js 22. Эта версия привносит множество улучшений, которые затронут как бэкенд-разработчиков, так и создателей инструментов командной строки. Давайте разберем самые значимые изменения, которые стоит знать каждому, кто работает с Node.js.
Двигатель V8 12.4: скорость и новые возможности
Сердцем Node.js 22 стал обновленный движок V8 версии 12.4. Это не просто косметический апгрейд — он приносит новые фичи JavaScript, которые уже сейчас можно использовать в продакшене:
- Array.fromAsync — статический метод для асинхронного создания массивов из итерируемых объектов. Упрощает работу с потоками данных.
- Set методы — прямые вызовы
intersection(),union(),difference()для работы с множествами без сторонних библиотек. - Iterator Helpers — долгожданные методы для работы с итераторами (map, filter, take и другие) теперь доступны "из коробки".
Стабильный require() для ESM модулей
Одно из самых обсуждаемых изменений — флаг --experimental-require-module теперь включен по умолчанию. Это означает, что вы можете использовать require() для загрузки ESM-модулей (с расширением .mjs или с "type": "module" в package.json).
Что это значит для разработчика:
- Постепенный переход с CommonJS на ESM без переписывания всего кода.
- Возможность подключать современные ESM-пакеты в старых проектах.
- Упрощение миграции для крупных кодовых баз.
Улучшенный WebSocket и работа с сетью
Node.js 22 включает в себя встроенный WebSocket-клиент (ранее экспериментальный). Теперь для создания real-time приложений не нужно устанавливать ws или socket.io — всё доступно через глобальный объект WebSocket.
Также стоит отметить улучшения в HTTP-клиенте: по умолчанию включена поддержка HTTP/2, а также появилась возможность использовать fetch() с автоматическим определением прокси из переменных окружения.
Изменения в работе с файловой системой
Разработчики, работающие с файлами, оценят новые методы в модуле fs:
- fs.cp — теперь стабильный и работает быстрее аналогов.
- fs.openAsBlob() — создание Blob из файла без загрузки в память целиком.
- Улучшенная поддержка символических ссылок на Windows.
Что устарело и удалено
Как и в любом крупном обновлении, некоторые функции были помечены как устаревшие или удалены:
- Модуль
punycodeокончательно удален (используйтеURLили пакетpunycodeиз npm). - Аргументы командной строки
--experimental-loaderи--experimental-specifier-resolutionобъявлены устаревшими. - Опция
--no-experimental-fetchбольше не работает — fetch теперь встроен навсегда.
Как обновиться
Node.js 22 доступен для скачивания на официальном сайте nodejs.org. Рекомендуется обновляться через менеджер версий (nvm или fnm), чтобы при необходимости быстро откатиться