Вышла Node.js 25 — промежуточная версия с обновлённым V8, Web Storage и улучшениями в производительности
Node.js 25.0 вышла в октябре 2025 года как промежуточная версия с поддержкой до июня 2026 года. Основные изменения: обновление движка V8 до 14.1, включение API Web Storage по умолчанию, поддержка JSPI для WebAssembly, оптимизация JSON.stringify и добавление флага для ограничения сетевого доступа.
В середине октября 2025 года состоялся релиз Node.js 25.0 — промежуточная версия, предназначенная для тестирования новых функций и улучшений, которые в будущем могут быть включены в LTS-ветки. Поддержка этой версии будет осуществляться в течение семи месяцев — до июня 2026 года. В качестве долгосрочной поддержки остаётся Node.js 24, срок поддержки которого продлится до апреля 2028 года.
Движок V8 обновлён до версии 14.1, соответствующей Chromium 141. Это принесло улучшения производительности: метод JSON.stringify стал работать быстрее, оптимизированы процессы компиляции WebAssembly и JIT-компиляции. Добавлены методы для эффективного преобразования данных между Uint8Array и строковыми представлениями в форматах base64 и шестнадцатеричной записи.
В режиме запуска с ограничением прав (через флаг --permission) теперь можно явно разрешить сетевой доступ с помощью параметра --allow-net. Если этот флаг не указан, любые попытки выполнить сетевые операции — например, HTTP-запросы или подключение к базе данных — будут блокироваться с ошибкой ERR_ACCESS_DENIED.
API Web Storage, ранее доступный только в браузерах, теперь включён по умолчанию и доступен без импорта. Классы localStorage и sessionStorage могут использоваться для хранения данных в формате ключ/значение на стороне сервера. Метка экспериментальной разработки с этого API снята.
Класс ErrorEvent, ранее требовавший явного импорта, стал глобальным — его можно использовать напрямую для обработки событий об ошибках, как в браузерной среде.
Добавлена поддержка JSPI (JavaScript Promise Integration) для WebAssembly — это позволяет вызывать асинхронные операции, такие как чтение файлов или сетевые запросы, из кода, скомпилированного в WebAssembly, без изменения его синхронной структуры.
Добавлена опция NODE_COMPILE_CACHE_RELATIVE_PATH, позволяющая кэшировать скомпилированные модули с использованием относительных путей. Это позволяет переносить проекты вместе с кэшем между разными средами — например, при развёртывании в Docker-контейнерах или на разных серверах — без потери кэшированных данных.
Добавлена возможность профилирования нагрузки на CPU, что позволяет анализировать производительность приложений в реальном времени.
Пакетный менеджер npm обновлён до версии 11.6.2. Поддержка Python обновлена до версии 3.14. Минимальные требования к компиляторам: Clang 19 и Xcode 16.4.
Удалён устаревший объект SlowBuffer, который ранее использовался для выделения памяти. Вместо него рекомендуется использовать метод Buffer.allocUnsafeSlow(), обеспечивающий более безопасную и предсказуемую работу.
Node.js 25 не предназначена для использования в production-средах. Она предназначена для разработчиков, которые хотят тестировать новые возможности, участвовать в развитии платформы и готовы к возможным изменениям перед переходом на следующую LTS-версию. Для стабильных рабочих сред рекомендуется использовать LTS-ветки — Node.js 24 или 22.