Вышел 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). - Выше производительность — за счёт оптимизаций