Новый релиз Node.js 22: главные изменения и улучшения

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

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

Начать курс

Вышел Node.js 22: обзор ключевых нововведений

22 апреля 2024 года состоялся официальный релиз Node.js 22 — новой стабильной версии популярной серверной платформы JavaScript. Это обновление привносит множество улучшений производительности, безопасности и удобства разработки. Давайте разберём самое интересное.

Основные изменения в Node.js 22

1. Движок V8 обновлён до версии 12.4

В основе Node.js 22 лежит новый движок V8 12.4, который уже используется в Chrome 124. Среди ключевых улучшений:

  • Оптимизация работы с массивами — новый Array.fromAsync позволяет создавать массивы из асинхронных итераторов без лишних промисов.
  • Ускоренный парсинг — благодаря улучшенному JIT-компилятору скорость выполнения кода в среднем выросла на 5–10%.
  • Новые методы для RegExp — добавлена поддержка флага v для более гибкого синтаксиса регулярных выражений.

2. WebSocket стал стабильным (без флага)

Ранее WebSocket в Node.js был экспериментальным и требовал запуска с флагом --experimental-websocket. В версии 22 он наконец-то получил статус стабильного API. Теперь вы можете использовать встроенный WebSocket без дополнительных настроек:

const ws = new WebSocket('ws://example.com');
ws.onmessage = (event) => console.log(event.data);

Это упрощает создание реального времени (real-time) приложений — чатов, трекеров, игр.

3. Модули ESM по умолчанию для скриптов

Начиная с Node.js 22, если вы запускаете скрипт с расширением .mjs или в package.json указан "type": "module", то модульная система CommonJS больше не используется по умолчанию. Это важный шаг к стандартизации экосистемы вокруг ES-модулей.

  • Упрощение импорта — теперь import/export работает нативно без транспиляторов.
  • Поддержка top-level await — можно ожидать промисы на верхнем уровне модуля.

4. Улучшенная работа с потоками (Streams)

Добавлены новые методы для работы со стримами:

  • ReadableStream.from() — позволяет создавать читаемые потоки из любых итераторов (например, из Set или Map).
  • WritableStream.getWriter() — упрощает запись данных в потоки без лишних обёрток.

5. Повышена безопасность

В Node.js 22 усилены политики безопасности:

  • Автоматическое экранирование при выводе данных в консоль через console.log() для предотвращения инъекций.
  • Запрет на использование устаревших криптоалгоритмов по умолчанию (например, SHA-1 для подписей).

Что это значит для разработчиков?

Node.js 22 — это не просто очередной релиз, а важная веха в эволюции платформы. Основные выгоды для разработчиков:

  • Меньше зависимостей — встроенный WebSocket и стабильные ESM позволяют отказаться от сторонних пакетов (например, ws или esm).
  • Выше производительность — за счёт оптимизаций

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