Обновление Node.js

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Логотип node.js
Логотип node.js

В этой статье кратко изложена информация о некоторых интересных вещах, происходящих в проекте Node.js в начале 2022 года.

Релизы

График выпуска Node.js должен быть предсказуемым, чтобы пользователи могли планировать свои миграции. По графику (рисунок 1):

  • Node.js 12 прекратит свое существование в конце апреля 2022 года.

  • Node.js 14 и 16 находятся на этапе долгосрочной поддержки и будут поддерживаться до апреля 2023 и апреля 2024 года соответственно.

  • Node.js 17 — это наша текущая линейка выпусков, которая будет поддерживаться до июня 2022 года.

Рис. 1. Проект Node.js опубликовал временную шкалу для предстоящих выпусков (источник: https://github.com/nodejs/release).
Рис. 1. Проект Node.js опубликовал временную шкалу для предстоящих выпусков (источник: https://github.com/nodejs/release).

Также по традиции в апреле будет выпущена новая основная версия Node.js: версия 18. В проекте уже идет подготовка к новому релизу. Рабочая группа по сборке Node.js планирует все необходимые обновления операционной системы и компилятора. Ранние предварительные сборки, скорее всего, будут доступны в марте.

Новые фичи

Как всегда, участники усердно работают над добавлением новых функций в Node.js, перечисленных в виде pull requests на GitHub. Далее мы подробно расскажем о нескольких последних дополнениях.

HTTP - fetch()

fetch() из коробки ! Экспериментальная реализация этого долгожданного метода появилась и отправлена в Node.js 17.5.0. Глобальный fetch() изначально будет доступен только при использовании в --experimental-fetchв параметрах запуска из командной строки. Реализация основана на undici , клиенте HTTP/1.1, написанном для Node.js участниками проекта. Пример использования:

import {fetch} from 'undici';

async function fetchJson() {

    const res = await fetch('https://api.github.com/zen');

    console.log(res);
}

Включение этой функции частично было ускорено обсуждениями на последнем мини-саммите Node.js Next 10 в январе 2022 г., где проект определил и согласовал приоритеты для HTTP в Node.js. Вы можете посмотреть обсуждение на YouTube или прочитать резюме на GitHub.

Модули ECMAScript

В последние месяцы проект продолжал успешно внедрять модули ECMAScript. И ключевые вехи включают стабильные модули JSON . Хотя модули JSON остаются экспериментальными, теперь они включены по умолчанию, начиная с Node.js 17.5.0.

Также была добавлена ​​поддержка утверждений импорта JSON, демонстрируемая следующим синтаксисом:

import example from './example.json' assert { type: 'json' };

Другие новые функции

Некоторые перспективные разработки:

  • В экспериментальное подмножество API-интерфейсов планирования разработанный группой сообщества Web Platform Incubator (WICG), включая методы scheduler.wait() и scheduler.yield(). См. RFC - timers: add experimental scheduler api #40909

  • В поддержку сертификатов x509 добавлен метод сheckHost() совместимый с RFC 2818 (HTTP через TLS). См. RFC crypto: support RFC 2818 compatible checkHost #41569.

  • В API Node.js был добавлен новый экспериментальный метод node_api_symbol_for() для упрощения использования символов в пользовательских дополнениях и расширениях на С и С++. См. node-api: add node_api_symbol_for() #41329.

Горячие темы в сообществе Node.js

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

Primordials в ядре Node.js

Primordials используются в ядре Node.js в попытке предотвратить вмешательство во встроенные модули Node.js, в том числе от атак типа "загрязнение прототипа".

Использование primordials в ядре Node.js обсуждается в рамках проекта и Технического руководящего комитета Node.js (TSC). Обсуждение касается баланса между тем, насколько защищенными от взлома должны быть основные API, ценой защиты от взлома и затратами на поддержку кода, нагрузкой на производительность во время выполнения и усилиями, необходимыми для предотвращения возможного переопределения модели.

Обновление цепочки инструментов, используемой для сборки Node.js

Вновь разгорается дискуссия о том, какие инструменты должны использоваться для сборки Node.js. Текущая цепочка инструментов создает некоторые проблемы, и проект хотел бы внести изменения. Некоторые из вариантов представлены в этих документах:

  • analysis: add cmake toolchain analysis #9

  • analysis: add Bazel toolchain analysis #8

  • analysis: add GN toolchain analysis #7

Для тех кто хочет попробовать свои силы в команде Node.js, есть призыв помочь в продвижении этой миграции.

Next 10: Будущее Node.js

Группа Node.js Next 10 продолжает работать над выявлением и документированием ключевых технических приоритетов проекта. Недавно команда провела два мини-саммита. Один из них состоялся в ноябре 2021 года и касался подходящих типов для конечных пользователей и отдельных исполняемых приложений. Другой состоялся в январе 2022 года и был посвящен современным реализациям HTTP и документации.

Они хорошо поработали на этих двух саммитах, что привело к некоторым конкретным результатам. Например, благодаря обсуждениям HTTP, как упоминалось ранее, fetch()теперь это экспериментальный API. Также в сообществе договорились изучить возможность обновления руководства по стилю, для создания более качественной документации в формате JSON, которую можно было бы использовать для более простого создания информации о типах.

Если вы хотите помочь Node.js стать лучше, смело обращайтесь в группу Next 10. Можете принять участие в обсуждениях в репозитории GitHub и посетить следующие встречи и мини-саммиты, которые можно найти в Календаре встреч проекта Node.js.

Так -же для просмотра доступны записи мини-саммитов Node.js Next 10:

  • Запись мини-саммита за ноябрь 2022 г. (Типы и отдельные двоичные исполняемые файлы)

  • Запись мини-саммита за январь 2022 г. (современный HTTP и документация)

Предстоящие события

Хотя ездить на конференции по-прежнему сложно, мы все надеемся, что ситуация станет лучше, когда придет время OpenJS World в Остине в июне 2022 года. Тем временем сообщество выступает виртуально на DevConf.cz , и планирует обсудить навигацию по экосистеме npm на предприятии в ходе предстоящей конференции CityJS в Лондоне 25 марта 2022 года.

Будьте в курсе обновлений Node.js

Я надеюсь, что вам понравился этот краткий обзор того, что происходит в сообществе Node.js. Если вы хотите узнать больше, почитайте:

  • Node.js в Red Hat Developer

  • Node.js в IBM Developer

  • Блог проекта Node.js

Источник: https://habr.com/ru/post/656899/


Интересные статьи

Интересные статьи

Сайт мониторинга ситуации по коронавирусу Соединенного Королевства - основной сервис отчетности во время пандемии COVID-19 для всей страны. Он испытывает нагрузку порядка 45–50 миллионов запросов в де...
Привет, друзья! В этом небольшом туториале я хочу показать вам, как разработать простой, но довольно-таки полноценный сервер для тестирования API. Основной функционал нашего приложения будет сле...
Компания «Деловой разговор» — Титановый партнер 3СХ — осуществила расширенную интеграцию IP-АТС 3CX с Битрикс 24. Ранее уже существовали отдельные модули, решающие конкретные задачи, напр...
Microsoft готовит крупное обновление ОС для Windows 10 в 2021 году, которое, по информации источников, принесет с собой значительное обновление дизайна пользовательского ...
1С Битрикс: Управление сайтом (БУС) - CMS №1 в России по версии портала “Рейтинг Рунета” за 2018 год. На рынке c 2003 года. За это время БУС не стоял на месте, обрастал новой функциональностью...