Вышел Node.js 22: обзор главных нововведений и изменений

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Вышел 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), чтобы при необходимости быстро откатиться

Рекомендуем библотеки