Какая последняя версия node js
Перейти к содержимому

Какая последняя версия node js

  • автор:

Previous Releases

Major Node.js versions enter Current release status for six months, which gives library authors time to add support for them. After six months, odd-numbered releases (9, 11, etc.) become unsupported, and even-numbered releases (10, 12, etc.) move to Active LTS status and are ready for general use. LTS release status is «long-term support», which typically guarantees that critical bugs will be fixed for a total of 30 months. Production applications should only use Active LTS or Maintenance LTS releases.

Release Schedule

Full details regarding Node.js release schedule are available on GitHub.

Looking for latest release of a version branch?

Node.js Version Codename Release Date npm
v 21.6.2 2024-02-13 v 10.2.4 ReleasesChangelogDocs
v 20.11.1 Iron 2024-02-13 v 10.2.4 ReleasesChangelogDocs
v 19.9.0 2023-04-10 v 9.6.3 ReleasesChangelogDocs
v 18.19.1 Hydrogen 2024-02-13 v 10.2.4 ReleasesChangelogDocs
v 17.9.1 2022-06-01 v 8.11.0 ReleasesChangelogDocs
v 16.20.2 Gallium 2023-08-08 v 8.19.4 ReleasesChangelogDocs
v 15.14.0 2021-04-06 v 7.7.6 ReleasesChangelogDocs
v 14.21.3 Fermium 2023-02-16 v 6.14.18 ReleasesChangelogDocs
v 13.14.0 2020-04-29 v 6.14.4 ReleasesChangelogDocs
v 12.22.12 Erbium 2022-04-05 v 6.14.16 ReleasesChangelogDocs
v 11.15.0 2019-04-30 v 6.7.0 ReleasesChangelogDocs
v 10.24.1 Dubnium 2021-04-06 v 6.14.12 ReleasesChangelogDocs
v 9.11.2 2018-06-12 v 5.6.0 ReleasesChangelogDocs
v 8.17.0 Carbon 2019-12-17 v 6.13.4 ReleasesChangelogDocs
v 7.10.1 2017-07-11 v 4.2.0 ReleasesChangelogDocs
v 6.17.1 Boron 2019-04-03 v 3.10.10 ReleasesChangelogDocs
v 5.12.0 2016-06-23 v 3.8.6 ReleasesChangelogDocs
v 4.9.1 Argon 2018-03-29 v 2.15.11 ReleasesChangelogDocs
v 0.12.18 2017-02-22 v 2.15.11 ReleasesChangelogDocs

Copyright OpenJS Foundation and Node.js contributors. All rights reserved. The OpenJS Foundation has registered trademarks and uses trademarks. For a list of trademarks of the OpenJS Foundation, please see our Trademark Policy and Trademark List. Trademarks and logos not indicated on the list of OpenJS Foundation trademarks are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.

Нужно ли обновлять версию NodeJS в надежде на увеличение производительности?

Node.js — технология для запуска JavaScript кода вне браузера. Раньше код мог запускаться только в части фронтенда, но теперь JavaScript может исполняться на сервере, это позволяет писать серверный код для динамических веб-страниц и веб-приложений, а также для программ командной строки на этом языке. Релизы Node.js появляются часто, новые версии выпускаются как правило в апреле и октябре. Так, самой актуальной версией сейчас является Node.js 18.3.0. Однако, изменение версии платформы влечет за собой обновление большей части пакетов, которые необходимы для корректной работы приложения. Настройка зависимостей занимает много времени, а трудозатраты на рефакторинг кода, в случае изменений синтаксиса в обновленных библиотеках, могут быть очень большими. Поэтому до сих пор используются и довольно популярны версии 12, 10 и даже 8. Насколько критично использовать версию платформы Node.js, которая перестала поддерживаться несколько лет назад, и такие ли большие изменения претерпевала технология?

101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010

Отличия производительности в версиях

Последняя анонсированная версия Node.js рассчитана на Linux-системы, включая Debian 10 и Ubuntu 20.04, а также для macOS 10.15+. Из-за проблем со сборкой движка V8, разработанного компанией Google, временно прекращено формирование 32-разрядных сборок для Windows, или потребуется использование Windows Subsystem for Linux (WSL). Оптимизация в обновлении Node.js заключается и в улучшениях движка V8 (рис. 1), на которой и основана среда. V8 поддерживает использование динамически связанных общих объектов, написанных на C ++, в связке с JavaScript. Добавление новых функций и методов, расширение API, ускорение инициализации полей классов – всё это стало доступно в серверной JavaScript-платформе Node.js 18.0.

Динамика производительности с обновлением версии движка V8

Динамика производительности с обновлением версии движка V8

101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010

Проведение испытаний в идеальных условиях: использование только одной стартовой функции и заглушки-ответа, как это принято в базовом приложении – позволяют определить, что обновление движка способствовало увеличению производительности разных методов в среднем на 30%.

Оптимизация без повышения версии Node.js

  • 1. Использование цикла for…in в качестве базового метода снижает производительность до 13330 запросов в секунду.
  • 2. Использование [].map и filter показывает результат в 13316 запросов в секунду.
  • 3. Стандартный цикл for показывает результат 16015 запросов в секунду, что намного ближе к эталону.

Ту же аналогию можно провести и с другими базовыми методами, используемыми в расчетах и обработке данных. Так, Math.round(el*100)/100 в 2 раза быстрее чем toFixed(2)

На производительность приложения влияют и следующие факторы:

  •  в Node.js многие задачи, интенсивно использующие ЦП, зависят от пула потоков. Хотя он не блокирует асинхронный ввод-вывод, он замедляет работу API, что приводит к задержкам ответов для пользователя. Запрос на регистрацию может сопровождаться хэшированием пароля, что занимает 100 мс, и для этой процедуры приходится ждать пул потоков;
  •  Node.js работает в одном потоке, поэтому производительность нашего кода напрямую влияет на все приложение. Например, использование JSON.parse может замедлить работу API. Нужно учитывать также размер данных, трафик, наличие циклов и рекурсивных функций – всё это может стать причиной возникновения проблем или недоступности приложение;
  •  базовое приложение покажет разное время исполнения при изменении частоты процессора. Так для 8-ядерного процессора с тактовой частотой 2,1 ГГц Node.js 17 покажет результат в 30 тысяч обработанных запросов в секунду, а на процессоре с частотой 3,6 ГГц число запросов возрастает до 45 тысяч.

101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010
101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010 101010

Заключение

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

не ставится последняя версия node.js

всем добрый день.
в линуксе недавно, некоторых вещей не понимаю.
пытаюсь поставить node.js, на сайте https://deb.nodesource.com/ указана полная последовательность команд для установки продукта,
всё запускаю, проходит без проблем, кроме последней команды:
sudo apt-get update && sudo apt-get install nodejs -y

выдает:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлен пакет nodejs самой новой версии (8.11.1~dfsg-2~bpo9+1+b1).
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.

что не так? node ставлю последнюю версию — 20

ALSE_User
New member

Сообщения 529

Репы подключены ?
Покажите:
1. содержимое файла /etc/apt/souces.list
2. Выхлоп команды apt update
3. версию Astra Linux.

wert69
New member

Сообщения 11

apt update:
root@jav-astra:/# apt update
Сущ:1 https://deb.nodesource.com/node_20.x nodistro InRelease
Сущ:2 https://dl.astralinux.ru/astra/stable/2.12_x86-64/repository orel InRelease
Сущ:3 https://download.astralinux.ru/astra/stable/orel/repository orel InRelease
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Все пакеты имеют последние версии.
N: Пропускается получение настроенного файла «main/binary-i386/Packages», так как репозиторий «https://deb.nodesource.com/node_20.
x nodistro InRelease» не поддерживает архитектуру «i386»
версия
root@jav-astra:/# cat /etc/astra_version
CE 2.12.46 (orel)

wert69
New member

Сообщения 11

содержимое файла /etc/apt/souces.list

ALSE_User
New member

Сообщения 529

А не в этом ли дело ?
AL CE 2.12.46 основана Debian 9 ?

Distro NameNode 16xNode 18xNode 20xNode

Debian 8 Jessie ✅ ❌ ❌
Debian 9 Stretch ✅ ❌ ❌
Debian 10 Buster ✅ ✅ ✅
Debian 11 Bullseye ✅ ✅ ✅
Debian 12 Bookworm ✅ ✅ ✅

P.S. А почему Вы пишете в ветку Special Edition ?

wert69
New member

Сообщения 11

в Special Edition не специально. видимо читал все на форуме по поводу node. когда решил написать свою тему, тут и остался.
а это как-то влияет на установку node??

«А не в этом ли дело ?
AL CE 2.12.46 основана Debian 9 ? » тут совсем не понял.

ALSE_User
New member

Сообщения 529

Node JS 20 можно поставить на версии начиная с Debian 10.
А если ваша 2.12.46 основана на Debian 9, то можно поставит только Node JS 18

wert69
New member

Сообщения 11
я пробовал и 18. такое же сообщение.

wert69
New member

Сообщения 11

» Уже установлен пакет nodejs самой новой версии (8.11.1~dfsg-2~bpo9+1+b1).
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.»

Карл
New member

Сообщения 487

wert69
New member

Сообщения 11
спасибо, буду пробовать

wert69
New member

Сообщения 11

да, через nvm поставилось, спасибо. Однако вылезла новая напасть:
root@jav-astra:~# nvm ls
v18.18.1
v20.8.0
system
default -> 18.18.1 (-> v18.18.1)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.8.0) (default)
stable -> 20.8 (-> v20.8.0) (default)
lts/* -> lts/hydrogen (-> v18.18.1)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.2 (-> N/A)
lts/hydrogen -> v18.18.1

тут всё хорошо, но если я проверяю версию, то:
root@jav-astra:~# node -v
node: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27′ not found (required by node)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25′ not found (required by node)
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28′ not found (required by node)

что опять не понравилось?

Вышла Node.js 20. Рассказываем об обновлениях

Аватарка пользователя Рафаил Агазода

Node.js обновилась до 20 версии и перейдет на LTS-версию в октябре 2023 года. Рассказываем, что изменилось.

Сообщение об обновлении Node.js до 20 версии появилось в официальном блоге разработчиков.

Загрузить Node.js 20.0.0 можно здесь, а прочесть обо всех обновлениях можно на странице релиза.

Node.js 20 перейдет на долгосрочную поддержку (LTS) в октябре. До той поры он будет «текущим» релизом в течение полугода.

Будете обновляться?
Да, давно пора
Нет, подожду LTS или пока старая версия не прекратит поддержку
Обновлюсь вынужденно 🙁

Основные изменения в Node.js 20

Модель разрешений

Модель разрешений Node.js — это экспериментальный механизм, который ограничивает доступ к определенным ресурсам.

Она позволяет разработчикам ограничить доступ к определенным ресурсам во время выполнения программы, таким как операции с файловой системой, создание дочерних процессов и рабочих потоков.

В 20 версии представлены следующие возможности:

  1. Ограничение доступа к файловой системе (чтение и запись).
    Используйте —allow-fs-read и —allow-fs-write
  2. Ограничение доступа к дочернему процессу.
    Используйте —allow-child-process
  3. Ограничение доступа к рабочим потокам.
    Используйте —allow-worker
  4. Ограничение доступа к нативным аддонам (аналогично флагу —no-addons).

Эти команды маркируются флагом —experimental-permission . Флаг позволяет запускать команды в отдельном потоке, чтобы отделить код модулей от основного кода приложения.

Ещё появились флаги —allow-fs-read и —allow-fs-write . Они позволяют детально контролировать, к каким файлам может обращаться Node.js.

Чтобы включить эти флаги, нужно использовать флаг —experimental-permission вместе с желаемыми разрешениями. Например, вот как получить получить доступ на чтение и запись ко всей файловой системе:

$ node --experimental-permission --allow-fs-read=* --allow-fs-write=* index.js 

Разработчики также могут указать конкретные пути для доступа к файловой системе, передавая значения флагов через запятую. Например, следующая команда разрешает доступ на запись в папку /tmp/:

$ node --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read=/home/index.js index.js 

Подстановочные знаки также можно использовать для разрешения доступа сразу к нескольким файлам или папкам. Например, следующая команда разрешает доступ на чтение ко всем файлам и папкам в каталоге /home/, начинающимся с test:

$ node --experimental-permission --allow-fs-read=/home/test* index.js 

Эти функции пока являются экспериментальными и могут измениться в будущих выпусках Node.js.

V8 11.3 и Chromium 113

Новая версия движка V8 включена в Node.js (обновлена до версии 11.3, которая входит в состав Chromium 113). Теперь производительность станет выше, и можно будет использовать новые функции языка.

Совместимость с другими средами

Проект на Node.js теперь совместим с другими средами JavaScript.

Например, в Node.js 20 аргументы функций Web Crypto API теперь принудительно проверяются в соответствии с их определениями WebIDL, как и в других реализациях Web Crypto API.

Поддержка ARM64 Windows

Node.js теперь поддерживает двоичные файлы для ARM64 Windows, что позволяет спокойно выполнять код.

Пакеты MSI, zip/7z и исполняемый файл доступны на сайте загрузки Node.js наряду со всеми другими платформами.

Все изменения в Node.js 20 теперь тестируются на ARM64 Windows, чтобы предотвратить регрессии и обеспечить совместимость.

Обновление парсера

Node.js v20 поставляется с последней версией парсера URL, Ada. Это обновление значительно повышает производительность парсинга URL. Также улучшены функции url.domainToASCII и url.domainToUnicode в node:url .

Что будет со старыми версиями Node.js

Node.js 14 перестанет поддерживаться в апреле 2023 года, поэтому стоит обновиться до Node.js 18 (LTS) или Node.js 20 (LTS выйдет через полгода).

Node.js 16 (LTS) перестанет поддерживаться в сентябре 2023 года, хотя изначально это должно было случиться в апреле 2024 года. Поддержка закончится раньше, так как раньше заканчивается поддержка OpenSSL 1.1.1.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *