Итоги конференции по JavaScript и Node.js: главные анонсы
На прошедшей неделе в Сан-Франциско завершилась ежегодная конференция, посвящённая экосистеме JavaScript и серверной платформе Node.js. Мероприятие собрало более 5000 участников, включая ключевых разработчиков из Google, Microsoft, OpenJS Foundation и сообщества Deno. Мы собрали самые важные анонсы, которые повлияют на разработку в 2024–2025 годах.
Node.js 22: новый LTS-релиз
Главным событием стал выход Node.js 22, который перешёл в статус Long-Term Support (LTS). Среди ключевых нововведений:
- Встроенный WebSocket-клиент — теперь для работы с протоколом WebSocket не требуется установка сторонних библиотек (например,
ws). Это упрощает создание real-time приложений. - Стабильный ESM Loader Hooks — окончательная версия API для перехвата загрузки модулей. Позволяет создавать кастомные загрузчики (например, для поддержки CSS или JSON в ESM-окружении).
- Улучшенная производительность — движок V8 обновлён до версии 12.4, что даёт прирост скорости выполнения кода в среднем на 12%.
- Поддержка декораторов — экспериментальная фича, ранее доступная только через Babel или TypeScript, теперь включена по умолчанию.
TypeScript 5.6: новый компилятор и строгие проверки
Microsoft анонсировала TypeScript 5.6 Beta. Главные изменения:
- Режим
strictBuiltinIterator— строгая типизация для встроенных итераторов (Map,Set,Array). Теперь TypeScript будет проверять типы элементов на всех этапах цепочек.map().filter(). - Автоматический импорт из Node.js типов — компилятор сам подтягивает типы из
@types/nodeпри использовании глобальных объектов (process,Buffer). - Экспериментальный компилятор на Rust — представлен прототип нового компилятора
tsc-rs, который обещает ускорение сборки в 3–5 раз для больших проектов.
Deno 2.0: совместимость с npm и новые API
Команда Deno представила релиз-кандидат Deno 2.0. Ключевые анонсы:
- Полная совместимость с npm-пакетами — теперь можно импортировать любые пакеты из npm без использования
npm:префикса. Deno автоматически разрешает зависимости через собственный кэш. - Встроенный тест-раннер с покрытием — команда
deno testтеперь поддерживает генерацию отчётов о покрытии кода в формате LCOV и HTML. - Node.js-совместимый режим — флаг
--compatвключает эмуляцию глобальных объектов Node.js (require,process.env,__dirname), что упрощает миграцию существующих проектов.
V8 12.4: оптимизация памяти и WebAssembly
Движок V8, лежащий в основе Node.js и Chrome, получил значительные улучшения:
- Compressed pointers — для 64-битных систем указатели сжаты