Главная » Статьи » Что нового в Node.js 10

Что нового в Node.js 10

Что нового в Node.js 10

От автора: обзор функций Node js 10. Версия 10 — это новейшая версия Node.js, и она содержит множество функций. Соответствуя кодовому названию «Dubnium», Node 10 был выпущен 24 апреля 2018 года и войдет в Long Term Support (LTS) в октябре 2018 года. Разработчики JavaScript с нетерпением ожидали этот релиз, поэтому давайте рассмотрим наиболее важные его особенности.

Добавление кодов ошибок

Ошибки в Node теперь стандартизованы, для них введены согласованные коды с повторяемыми шаблонами.

Ошибки были головной болью при работе в среде Node. Ранее они содержали только строковое сообщение, не связанное с другим идентификатором. Если разработчик хотел, чтобы программа выполняла действия на основе определенного сообщения, единственным вариантом было выполнить строковое сравнение содержимого ошибки.

Поскольку обработка ошибок требовала точного соответствия строк, даже самые маленькие обновления сообщений не могли быть добавлены до следующего основного релиза Node, чтобы это не нарушило SemVer. Отделение ошибок от сообщений упростит работу разработчиками и позволит Node улучшать сообщения об ошибках без внесения изменений.

N-API больше не является экспериментальным

Документация Node описывает N-API как API для создания собственных аддонов. Он не зависит от базовой среды JavaScript (ex V8) и поддерживается как часть самого Node.js. Этот API будет бинарным интерфейсом приложений (ABI), стабильным в версиях Node.js. Он предназначен для изоляции аддонов от изменений в базовом движке JavaScript и позволит компилировать модули для одной версии с использованием в последующих версиях Node.js без перекомпиляции.

N-API был экспериментально введен в Node 8 и, начиная с Node 10, он получил статус «Стабильный». Обновление версий Node больше не будет вызывать беспокойства по поводу обрыва модуля. Для него также будет реализована обратная совместимость с Node.js v6.x и v8.x.

Оригинальный HTTP / 2 в Node становится стабильным

Экспериментальный модуль HTTP / 2 был представлен в Node 8, и стал отличным обновлением для фреймворка. HTTP / 2 улучшает стандартный протокол HTTP, предоставляя:

Мультиплексирование

Одиночные соединения

Server Push

Приоритезацию

Сжатие заголовка

Выходя из экспериментальной фазы оригинальный HTTP / 2-модуль поможет улучшить серверы Node и веб-опыт, который они предоставляют.

Улучшения производительности с помощью V8 Engine v6.6

Node работал на V8 JavaScript Engine, используемом в Chromium, а Node.js v10 оснащен последней версией. Для браузера V8 Engine v6.6, который поставляется с Chrome 66, обеспечивает во время парсинга и компиляции JavaScript экономию примерно на 20-40%. Поэтому мы можем ожидать, что Node 10 также получит огромное преимущество от этого. Также он предлагает усовершенствования асинхронного генератора и производительности массивов.

В наши дни скорость для программного обеспечения — это все, и последняя версия Node не разочарует вас.

Улучшенная поддержка ES Modules (ESM)

// ESM
import pkg from “./pkg”
export default { a, b: 2 } vs. // CJS
const pkg = require(“./pkg”)
module.exports = { a, b: 2 }

Хотя мы не увидим полной поддержки ES Modules в Node 10, усилия в этот направлении предпринимаются все активнее.

Node использует CommonJS (CJS), который является синтаксисом require и module.exports. В эпическом выпуске ES6 2015 года была введена новая модульная система, известная как ECMAScript Modules (ESM). Являясь официальной реализацией ECMA, а также будучи широко принятым и любимым разработчиками, Node работает над собственной реализацией спецификации ESM.

Интеграция ESM в Node проходит не совсем гладко, так как она конфликтует с текущей системой. Тем не менее, необходимость согласования хорошо известна, и Node работает над решением этой проблемы.

Улучшенная диагностическое отслеживание и пост-вскрытие

Были добавлены события отслеживания, чтобы предоставлять разработчикам более наглядную информацию в приложениях Node.js. Этот новый подход может обеспечить улучшение показателей скорости и производительности. API предоставляет возможность пользователям включать или отключать события во время выполнения, что позволяет диагностировать проблемы по требованию.

Немедленное соответствие npm v6

В настоящее время npm обновляется с v5.7 до v6.0, и в Node 10 обновление будет отображено немедленно. Это обновлении версии npm обеспечивает улучшение во всех областях, включая производительность, безопасность и стабильность.

Переход на OpenSSL версии 1.1.0

Node теперь оснащен современной криптографической поддержкой, которая позволяет использовать ожидаемый шифр ChaCha20 и аутентификатор Poly1305. TLS 1.3 был недавно завершен, и к моменту, когда Node.js v10 в октябре перейдет на LTS, он будет полностью поддерживать стандарт.

Экспериментальная версия promise функций «fs»

Взаимодействие с файловой системой является основным моментом многих приложений Node, и Node 10 предоставляет экспериментальную версию пакета fs с promise. Ранее эти функции обрабатывали асинхронные действия через обратные вызовы, но могли быть преобразованы с использованием функции util.promisify(), которая поставляется с Node 8. Теперь разработчики могут использовать fs с promise без необходимости дополнительной обработки.

В заключение

Команда Node продолжает добавлять функции, которые делают жизнь наших разработчиков более приятной, а также позволяют нам создавать лучший опыт для пользователей. Node 10 еще больше расширяет горизонты и позволяет более просто и удобно оценивать ошибки, создавать собственные аддоны или увеличивать видимость приложений — как и многое другое.

Node 10 перейдет в LTS с октября 2018 года и по апрель 2021 года. Команда Node следует конкретному циклу четных / нечетных релизов. С переходом на LTS Node 11 также будет выпущен в октябре. Релизы с нечетным номером будут предназначены для экспериментов, а четные — LTS-релизы. Это также будет означать прекращение долгосрочной поддержки для Node 4.

Удачного кодирования!

Автор: Trey Huffine

Источник: https://levelup.gitconnected.com/

Редакция: Команда webformyself.