Пару дней назад вышла 19-я версия платформы Node.js. А это значит, совсем скоро обновится LTS: шестнадцатую версию сменит 18-я. Это произойдёт уже на следующей неделе. А что нового в 19-й версии?
⚡️ Новый параметр —watch
Добавили новый параметр --watch (пока экспериментально). Пример: node --watch foo.js. Запуск сценария с параметром --watch обеспечит автоматический перезапуск при внесении изменений в код. Это удобно на этапе разработки и отладки. Похожую функциональность предоставляет пакет nodemon. Протестировать параметр --watch можно не только в 19.0.0, но и в самой свежей 18.11.0.
⚡️ KeepAlive по умолчанию для HTTP(S)/1.1
Начиная с 19-й версии keepAlive включён по умолчанию. Таким образом, любое исходящее HTTP-соединение будет использовать HTTP 1.1 c заголовком Keep-Alive. Таймаут для закрытия соединения по умолчанию установлен в 5 секунд. Включение keep-alive может улучшить пропускную способность за счёт переиспользования соединений для следующих запросов.
⚡️ Стабильное WebCrypto API
WebCrypto API стало стабильным (кроме алгоритмов Ed25519, Ed448, X25519 и X448). Чтобы воспользоваться WebCrypto API, подключите модуль globalThis.crypto или require('node:crypto').webcrypto. Документация к модулю и спецификация.
⚡️ Удалён параметр —experimental-specifier-resolution
Аналогичная функциональность достигается за счёт использования пользовательских загрузчиков.
⚡️ Поддержка DTrace/SystemTap/ETW
Поддержка DTrace/SystemTap/ETW удалена в 19.0.0. Основная причина — отсутствие необходимых ресурсов команды разработки Node.js. Детали и обсуждения в ишью.
⚡️ V8 обновлён до 10.7
В 19-ю версию вошёл обновлённый V8. В этой версии движка добавлена поддержка обновлённого Intl.NumberFormat (V3). Подробней про Intl.NumberFormat V3 можно почитать здесь.
Полный чейнджлог.