Дмитрий
Node.jsmiddle![Иконка уровня middle](/_next/static/media/bug-middle-icon.cac7dc92.svg)
![Картинка поста Node.js 22: Новые возможности ES модулей, WebSocket-клиента и повышение производительности](/_next/image?url=https%3A%2F%2Fcdn-bucket.hb.bizmrg.com%2Fpurple-images%2Fprofile-images%2Fb2525334-be24-4152-82f9-647fe7c96fc8.png&w=3840&q=75)
Node.js недавно выпустила версию 22, и в ней множество значимых обновлений и нововведений, способных существенно улучшить производительность и расширить возможности разработчиков. Давайте рассмотрим основные моменты новой версии:
Ключевые особенности:
- Обновление V8 до версии 12.4: Новый движок JavaScript V8 версии 12.4 предоставляет множество новых возможностей, включая улучшенное управление сборкой мусора WebAssembly, асинхронный метод
Array.fromAsync
, а также новые методы для коллекцийSet
и вспомогательные итераторы. Эти обновления улучшают производительность и расширяют возможности по работе с массивами и коллекциями. - Компилятор Maglev: Этот компилятор теперь включен по умолчанию на поддерживаемых архитектурах. Он повышает производительность краткосрочных командных программ CLI.
- Поддержка
require()
для синхронных графов ESM: Теперь появилась экспериментальная возможность загружать модули ES с использованиемrequire()
, если они полностью синхронны и имеют явную маркировку в виде поля"type": "module"
или расширения.mjs
. Для этого используется флаг-experimental-require-module
. - Выполнение скриптов package.json: В версии 22 добавлена экспериментальная функция выполнения скриптов из
package.json
. Она позволяет использовать CLI-флагnode --run <script-in-package-json>
для запуска определенных скриптов напрямую. Например,node --run test
выполнит командуtest
, прописанную вpackage.json
. - Повышение High Water Mark для потоков: По умолчанию это значение увеличено с 16КБ до 64КБ, что приводит к общему повышению производительности потоков, хотя и требует немного больше памяти. Разработчикам рекомендуется задавать свой уровень High Water Mark, если они ограничены в памяти.
- Режим наблюдения (
node --watch
): Режим наблюдения теперь считается стабильным. Он отслеживает изменения в файлах и автоматически перезапускает процесс Node.js. - Поддержка WebSocket: Теперь поддержка WebSocket включена по умолчанию, предлагая браузер-совместимую реализацию WebSocket-клиента непосредственно в Node.js.
- Функции
glob
иglobSync
: Функции для сопоставления шаблонов путейglob
иglobSync
теперь встроены в модульnode:fs
, что позволяет легко искать файлы по шаблонам. - Улучшение производительности создания
AbortSignal
: Повышена эффективность создания экземпляровAbortSignal
, что значительно ускоряет выполнение операцийfetch
и тестов.
Карта развития разработчика
Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile
Комментарии
0