Выпуск серверной JavaScript-платформы Node.js 10 и пакетного менеджера NPM 6

24 апреля 2018 года

Анонсирован релиз Node.js 10.0.0, платформы для выполнения высокопроизводительных сетевых приложений на языке JavaScript. Node.js 10.0 относится к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Обновления для LTS-веток выпускаются в течение 4 лет. Поддержка прошлой LTS-ветки Node.js 8.0 продлится до 2021 года, а позапрошлой LTS-ветки 6.0 до 2020 года. Поддержка промежуточной ветки Node.js 9.0 будет прекращена в июле 2018 года.

Среди улучшений в Node.js 10.0:

  • Обновление движка V8 до версии 6.6. В новой версии отмечается оптимизация производительности асинхронных операций, функций promises/async, методов работы с массивами и строками (Array.prototype.*, String.prototype.indexOf ). Более чем в 10 раз увеличена производительность операции Array#reduce для массивов с большим числом пустот или значений с плавающей запятой. Производительность оператора instanceof возросла в 3.6 раза. Устранены некоторые узкие места с производительностью Function.prototype.bind. WeakMap и WeakSet. Сокращено потребления памяти в движке V8. До осенней стабилизации Node.js 10 запланирован переход на V8 версии 6.7;
  • Переход на использование OpenSSL 1.1.0, что позволило обеспечить поддержку потокового шифра ChaCha20 и алгоритма аутентификации сообщений (MAC) Poly1305. В дальнейшем до осенней стабилизации Node.js 10 запланирован переход на ветку OpenSSL 1.1.1 для обеспечения поддержки TLS 1.3;
  • Продолжен перевод проекта на новую систему обработки ошибок, в которой каждой проблеме присвоен свой уникальный код ошибки, что позволит организовать автоматизированный разбор проблем без привязки к тексту сообщения об ошибке и выпускать обновления текстов ошибок не дожидаясь следующего значительного релиза;
  • Стабилизирован и переведён в категорию официально поддерживаемых новый API Node.js ( N-API), который предоставляет средства для создания нативных дополнений к Node.js, не привязанных к JavaScript runtime и рассматриваемых как часть Node.js. N-API позволяет без перекомпиляции использовать существующее дополнение с новыми версиями Node.js и с разными JavaScript-движками (V8 и Chakra-Core);
  • Расширены средства диагностики и отладки. Добавлены новые события трассировки для точного измерения времени выполнения кода, позволяющие выявлять узкие места и провалы в производительности в пользовательском коде. В API также добавлена возможность включения и выключения трассировки во время выполнения программы;
  • Добавлен экспериментальный API fs/promises, предоставляющий вариант функций "fs", реализованный при помощи механизма promise и демонстрирующий более высокую эффективность;
  • Обеспечена поддержка новых возможностей языка JavaScript. Function.prototype.toString() теперь возвращает строку с кодом функции, полостью совпадающую с тем, как функция задана в исходных текстах (все отступы и даже комментарии сохраняются);
  • Добавлены дополнительные изменения для противодействия атакам по сторонним каналам и добавлена защита от обращения к памяти вне границ области, отведённой для WebAssembly, а также доступной через массивы и строки JavaScript.

Одновременно объявлено о выходе пакетного менеджера NPM 6, в котором отмечено существенное увеличение производительности - некоторые операции стали выполняться до 17 раз быстрее. В 2-3 раза ускорено выполнение команды "npm ci". Добавлена возможность настройки webhook (уведомления об изменении пакетов) непосредственно из CLI. Реализовано автоматическое разрешение конфликтов с файлами блокировки (lockfile) и упрощено создание повторяемых сборок.

В репозитории организована проверка пакетов на наличие известных уязвимостей - при установке пакетов, содержащих неисправленные уязвимости, пользователю теперь выводится специальное предупреждение. Для проведения анализа на наличие уязвимостей в уже установленных пакетах и связанных с ними зависимостях добавлена новая команда "npm audit". Более наглядно предоставлена информация о целостности метаданных, что упрощает выявление вредоносных модификаций или повреждений в пакетах.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск серверной JavaScript-платформы Node.js 10 и пакетного менеджера NPM 6», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.