Как обновить node.js?

Решения на Node.js

cluster

Cluster — это built-in модуль, позволяющий с лёгкостью запускать несколько процессов, которые делят между собой один порт. В данном случае балансировкой нагрузки занимается операционная система. На момент написания данного поста, модуль является экспериментальным, но мы всё же протестируем его в работе.

В данном случае при запуске приложения необходимо сначала запустить master-процесс, который в свою очередь, запустит необходимое количество дочерних процессов:

var cluster = require('cluster');

cluster.setupMaster({exec __dirname + '/worker.js'});

for (var i = ; i  4; i++) {
    cluster.fork();
}

cluster.on('exit', function(worker, code, signal) {
    console.log('worker ' + worker.process.pid + ' died');
});

Метод принимает параметры в виде объекта. Например, параметр задаёт путь к файлу worker’а, который затем будет запускаться на выполнение.

После начальной конфигурации master-север должен запустить необходимое количество рабочих процессов. Для этого используется метод .

var cluster = require('cluster');
var http = require('http');

http.createServer(function(req, res) {
    res.writeHead(200);
    res.end("hello world\n");
}).listen(7000);
console.log("Worker listen on 127.0.0.1:7000");

Создание worker’а мало чем отличается от создания обычного web-сервера. В данном случае мы просто создаём http-сервер и заставляем его слушать 7000 порт.

cluster2

Cluster2 — модуль от сторонних разработчиков, расширяющий возможности стандартного модуля cluster. Модуль добавляет функции, которые позволяют использовать cluster в production окружении. Среди таких функций:

перезапуск рабочих процессов
таймаут простоя
события для логирования
осторожное завершение процессов и др

Подробнее ознакомится с модулем можно на github.

etc

Ещё несколько модулей:

  • clusterhub — an attempt at giving multi process node programs a simple and efficient way to share data
  • cluster-master — take advantage of node built-in cluster module behavior
  • amino — clustering framework for Node.js

Установка при помощи NVM

Альтернативой установке Node.js через является использование специального инструмента , что расшифровывается как “Node.js version manager” (менеджер версий Node.js).

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

Для начала, нам необходимо установить пакеты из репозиториев Ubuntu, которые позволят собирать пакеты из исходников. NVM будет использовать это для сборки необходимых компонентов:

После установки требуемых пакетов, можно загрузить установочный скрипт nvm со страницы проекта на GitHub. Номер версии может отличаться, но в целом, для загрузки и установки можно использовать следующую команду :

Просмотреть установочный скрипт можно используя :

Запустите скрипт:

Эта команда установит ПО в вашу домашнюю директорию в папку . Также в файл будут добавлены некоторые необходимые для работы настройки.

Для получения доступа к функционалу nvm, вам необходимо перелогиниться в системе, либо вы можете использовать команду для того, чтобы применить изменения не прерывая текущую сессию:

Теперь, когда nvm установлен, вы можете устанавливать изолированные версии Node.js.

Чтобы узнать, какие версии Node.js доступны для установки, наберите:

Как вы можете видеть, новейшей версией на момент написания руководства является v6.0.0. Установить ее можно при помощи следующей команды:

Обычно nvm переключается на использование последней установленной версии. Вы можете указать nvm использовать только что загруженную версию в явном виде следующим образом:

Если вы устанавливаете Node.js через nvm, исполняемый файл будет иметь имя . Посмотреть, какую версию в данный момент использует shell, можно при помощи команды:

Если у вас установлено несколько версий Node.js, посмотреть их список можно с помощью команды:

Если вы хотите настроить одну из версий как версию по умолчанию, введите:

Эта версия будет автоматически выбираться при начале новой сессии. Вы также можете ссылаться на нее по псевдониму (алиасу) следующим образом:

Каждая версия Node.js имеет свои собственные пакеты, управлять которыми можно при помощи .

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

Если вы хотите установить пакет глобально (чтобы он был доступен для других проектов, использующих ту же версию Node.js), следует добавить флаг :

Эта команда установит пакет в директорию:

Глобальная установка позволит вам запускать команды из командной строки, но при этом вам придется использовать ссылку на пакет внутри вашего проекта следующим образом:

Узнать больше о доступных опциях можно при помощи следующей команды:

Установка Node.js при помощи nvm

Также можно установить Node.js при помощи менеджера версий nvm.

Менеджер nvm позволяет устанавливать несколько полноценных версий Node.js на один сервер. У вас будет возможность выбирать наиболее подходящую для каждого приложения версию.

Для начала нужно установить пакеты для компиляции исходного кода из репозиториев Ubuntu. Сценарий nvm будет использовать их для сборки программ.

Установив необходимые пакеты, загрузите сценарий установки nvm с GitHub. Номер версии может отличаться от номера, указанного в команде.

Просмотрите сценарий в текстовом редакторе:

Запустите сценарий:

Эта команда установит программу в домашний каталог  (~/.nvm), а затем добавит необходимые строки в файл ~/.profile.

Чтобы получить доступ к nvm, нужно выйти и снова войти в систему. Также можно использовать команду:

Теперь менеджер nvm установлен, и можно приступать к установке изолированных друг от друга версий Node.js.

Чтобы получить список доступных версий Node.js, введите:

Как видите, на момент написания статьи последней доступной является версия 6.0.0. Чтобы установить её, введите:

Как правило, nvm по умолчанию использует последнюю установленную версию. Чтобы выбрать версию вручную, введите:

При установке Node.js с помощью nvm исполняемый файл называется node. Чтобы узнать, какая версия Node.js используется на данный момент, введите:

Если вы установили несколько версий Node.js, можно просмотреть их список:

Чтобы выбрать версию, которая будет использоваться по умолчанию, введите:

Эта версия будет автоматически запускаться в новой сессии.

Можно также сослаться на версию по алиасу:

Каждая версия Node.js будет отслеживать свои пакеты, управлять которыми можно с помощью npm.

С помощью менеджера npm можно устанавливать модули Node.js в каталог ./node_modules. Например:

Чтобы установить модуль общесистемно (чтобы любой другой проект мог использовать его), добавьте флаг –g (globally):

Пакет будет установлен в:

При глобальной установке команды можно запускать в командной строке, но при этом нужно ссылаться на пакет:

Чтобы получить справку по работе с nvm, введите:

16 ответов

149

Это обновит npm, используя сам npm:

Если вы застряли, попробуйте . Вся заслуга Тиму Кастелийнсу. Я проверил это на Ubuntu 14.04, NPM 1.3.10

Обратите внимание, что если вы используете nvm для управления несколькими версиями в вашей локальной среде разработчика, например, в целях тестирования, все ваши установленные версии (перечисленные в ) находятся в ~/.nvm, следовательно, вы просто пропускаете общесистемную установку (то есть опускаете sudo):

ДЕБИЙСКОЕ ПРЕДПРИЯТИЕ

Для полной практики предприятия рассмотрим nodeource.com:

как описано здесь.

ДРУГОЕ ПРЕДПРИЯТИЕ

Чтобы узнать о дистрибутивах, отличных от Debian, зайдите на узел github вики https://github.com/joyent/node/wiki/install-node.js-via-package-manager на странице загрузки https://nodejs.org/en/download/

Для исторического понимания: Чис-Ли поддерживал свой PPA, но теперь объединил свои силы с узловым источником.

Ответ дал

15 июль 2014, в 14:31
Поделиться

34

если user3223763 ответ не работает, вы можете попробовать следующее:

Тогда:

После этого откройте новый терминал и проверьте версию npm:

EDIT/UPDATE:

Сегодня последняя версия nvm:

Таким образом, команда CURL: v0.25.4 вместо v0.13.1

Ответ дал

25 авг. 2014, в 09:58
Поделиться

13

Похоже, вы используете Ubuntu (из командной строки, которую вы показываете). Для обновления и вы можете использовать репозиторий PPA:

Ответ дал

09 июнь 2014, в 21:13
Поделиться

6

Вы можете попробовать:

Ответ дал

05 сен. 2017, в 10:50
Поделиться

6

Попробовал описанные выше варианты в Ubuntu 14.04, но они будут постоянно выдавать эту ошибку:

Тогда нашел это решение онлайн:

1) Сначала очистите кэш npm:

2) Установить н модуль НПМ:

3) Начните установку, выбрав версию узла для установки: стабильную или последнюю, мы будем использовать стабильную версию здесь:

4) Проверьте версию узла:

5) Проверьте версию npm:

Ответ дал

15 июнь 2016, в 01:45
Поделиться

4

Чтобы получить последнюю стабильную версию, просто запустите

Это сработало для меня отлично!

Ответ дал

05 апр. 2017, в 13:06
Поделиться

2

обновление до nodejs v0.12.7

Ответ дал

13 июль 2015, в 11:10
Поделиться

1

это то, что npm рекомендует, когда в терминале вторая часть напрямую копируется и вставлена ​​с моего терминала

Примечание: im использует mac

Ответ дал

17 май 2017, в 18:30
Поделиться

sudo npm install -g npm

Запустите команду выше, чтобы обновить npm.

Ответ дал

17 янв. 2019, в 07:33
Поделиться

не забудьте закрыть и снова запустить окно терминала;)

(по крайней мере, если вы хотите проверить «npm —version» в терминале)

это тоже помогло мне

Ответ дал

03 янв. 2019, в 05:40
Поделиться

Для Ubuntu 18.04

npm установить последнюю версию

Я надеюсь, что это также для вас

Ответ дал

24 дек. 2018, в 11:42
Поделиться

если вам случится использовать nvm

Ответ дал

17 дек. 2018, в 20:52
Поделиться

Проверьте версию узла узел -v и ваш НПМ версии НПМ -v Затем Чтобы обновить НПМ, введите это в терминале: Суда НПМ установки NPM @последняя -g

NB: ОС на основе Debian {ubuntu или Linux mint}

Ответ дал

04 окт. 2018, в 23:31
Поделиться

Вот что сработало для меня в Ubuntu

Ответ дал

21 сен. 2018, в 04:12
Поделиться

Проверьте свой узел версии и версию Затем, чтобы обновить npm, введите его в свой терминал:

Надеюсь, я смогу помочь. С уважением

Ответ дал

21 июнь 2018, в 13:45
Поделиться

Если вы хотите обновить npm до определенной версии, вы можете использовать это:

Ответ дал

18 июнь 2016, в 06:02
Поделиться

Ещё вопросы

  • 2686В чем разница между тильдой (~) и кареткой (^) в package.json?
  • 472Потерянный файл httpd.conf находится в Apache
  • 426Nginx без www для www и www для no-www
  • 431Не удается установить пакеты с помощью диспетчера пакетов узла в Ubuntu
  • 252Postgresql: аутентификация по паролю не удалась для пользователя «postgres»
  • 233Меню Eclipse не отображаются после обновления до Ubuntu 13.10
  • 174Как определить, использует ли tenorflow ускорение gpu из оболочки Python?
  • 133Окно появляется за пределами экрана на Ubuntu
  • 104Модули NPM не будут устанавливаться глобально без sudo
  • 108Как собрать пакет Debian / Ubuntu из исходного кода?

Обновление на Windows

По умолчанию npm устанавливается рядом с узлом в

Глобально установленные пакеты npm (включая, возможно, сам npm) хранятся отдельно в пользовательском каталоге (который в настоящее время

).

Потому что установщик ставит

до

Чтобы обойти это, вы можете сделать одно из следующего:

  • Вариант 1: изменить установки Windows , чтобы положить до того . Помните, что вам нужно будет перезапустить (и, возможно, перезапустить Windows) при внесении изменений в или при установке npm.

  • Вариант 2: удалить оба

  • Вариант 3. Перейдите в и скопируйте файл в другую папку или на рабочий стол. Затем откройте и выполните следующие команды:

Если вы установили npm с помощью установщика node.js, после выполнения одного из предыдущих шагов выполните следующее.

  • Вариант 1 или 2

    Перейдите в %ProgramFiles%\nodejs\node_modules\npm и скопируйте файл с именем npmrc в новую папку npm, которая должна быть %appdata%\npm\node_modules\npm. Это сообщит новому npm, где находятся глобальные установленные пакеты.

  • Вариант 3

    Скопируйте файл npmrc обратно в %ProgramFiles%\nodejs\node_modules\npm

Краткое примечание о встроенной конфигурации Windows

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

Если он не установлен в , вы можете выполнить приведенную ниже команду, чтобы исправить это:

Кстати, если вы предпочитаете, чтобы пакеты не устанавливались в вашем роуминговом профиле (потому что у вас есть квота в общей сети, или это делает вход или выход из домена медленным), вы можете вместо этого поместить его в данные локального приложения:

… а также копирование в (и, конечно, обновление вашего ).

Каждый, кто работает на npm, знает, что этот процесс сложен и чреват, и мы работаем над тем, чтобы сделать его проще. Оставайтесь в курсе.

Как использовать NVM

Есть несколько важных вещей которые нужно знать чтобы использовать NVM эффективно, ниже они будут описаны и будут приведены примеры как делать определенные задачи.

Установка разных версий Node.js

Менеджер версий делает установку разных версий Node.js очень простой с помощью одной команды. Просто запустите команду install и передайте ей параметром необходимую версию. Например, если вы хотите установить Node.js версии v6.5.0, выполните следующую команду:

Так как утилита следует SemVer, вы можете устанавливать патчи командой install с аргументом номера патча. Для получения списка доступных версий в Linux и OS X, выполните:

Если вы используете Windows, выполните следующую команду:

Если вам нужно удалить екземпляр Node, просто выполните nvm uninstall c нужным номером версии.

Глобальные npm пакеты

Стоит заметить то что глобально установленный npm пакеты не разделяются между разными версиями Node.js, потому что они могут причинить проблемы несовместимости. Поэтому, Node Version Manager одновременно устанавливает совместимую версию npm каждый раз когда вы устанавливаете какую то версию Node.js. Так как каждый экземпляр Node имеет собственную версию npm, вы можете запустить npm -v что-бы проверить какая версия сейчас используется. Также не нужно иметь sudo права при установке глобальных пакетов. Если вы хотите переустановить глобальные npm пакеты для определенной версии Node.js или при ее установке, сделайте так:

Команда выше устанавливает Node 6.5.0 и необходимую npm, потом переустанавливает все установленные пакеты в версии 4.2

Алиасы

Что облегчить процесс смены версий, NVM позволяет использовать псевдонимы для определения версий без указания номера. Примеры стандартных алиасов:— node: устанавливает самую последнюю стабильную версию Node.js— unstable: устанавливает самую последнюю стабильную версию Node.js— iojs: устанавливает самую последнюю стабильную версию io.js

Для установки последней стабильной версии Node.js выполните следующую команду

Также существует алиас по умолчанию. Для установки версии по умолчанию используйте такую команду

Кроме того, вы можете создавать собственные алиасы:

Для удаления алиаса, выполните команду unalias:

Переключения между версиями Node.js

Каждый раз как вы устанавливаете новую версию Node.js, она будет автоматически выбираться для использования. Для переключения между версиями используется команда, nvm use которая работает почти также как и команда install. Например если вы хотите переключиться на последнюю стабильную версию, выполните команду

Для получения списка всех установленных версий Node, используется команда nvm ls:

Активная версия будет помечена зеленым цветом и стрелочкой, также текущую версию можно получить с помощью команды:

Дополнительные команды

— Существует несколько дополнительных команд, которые могут вам когда-нибудь понадобиться. Чтобы запустить команду для установленной версии без переключений переменных node, используйте такой формат

— чтобы задать определенную версию при запуске команда в саб-терминале, выполните такую команду

— если вы хотите узнать путь к исполняемым файлам Node.js для какой-то версии Node, используйте следующий формат

— Также вы можете назначить желаемую версию Node.js для ваших проектов, создав .nvmrc файлы в репозитории проектов. Существует плагин avn https://github.com/wbyoung/avn, который позволяет автоматичски переключпаться между версиями при смене директорий.

Обновление на Windows

По умолчанию npm устанавливается рядом с узлом в

Глобально установленные пакеты npm (включая, возможно, и сам npm) хранятся отдельно в пользовательском каталоге (который в настоящее время является

).

Потому что установщик ставит

до

на вашем он всегда будет использовать версию npm, установленную с узлом, вместо версии npm, установленной с помощью .

Чтобы обойти это, вы можете сделать одно из следующих действий:

  • Вариант 1: отредактируйте вашей установки Windows , чтобы поместить перед .
    Помните, что вам нужно будет перезапустить (и потенциально перезапустить Windows), когда вы вносите изменения в или способ установки npm.

  • Вариант 2: Удалите оба из

  • Вариант 3: перейдите к и скопируйте файл в другую папку или на рабочий стол.
    Затем откройте и выполните следующие команды:

Если вы установили npm с помощью программы установки node.js, после выполнения одного из предыдущих шагов выполните следующие действия.

  • Вариант 1 или 2

    Перейдите в %ProgramFiles%\nodejs\node_modules\npm и скопируйте файл с именем npmrc в новую папку npm, которая должна быть %appdata%\npm\node_modules\npm . Это покажет новому npm, где находятся глобальные установленные пакеты.

  • Вариант 3

    Скопируйте файл npmrc обратно в %ProgramFiles%\nodejs\node_modules\npm

Краткое описание встроенной конфигурации Windows

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

Если он не установлен в , вы можете выполнить приведенную ниже команду, чтобы исправить его:

Кстати, если вы предпочитаете, чтобы пакеты не устанавливались в ваш перемещаемый профиль (потому что у вас есть квота в общей сети, или это делает вход или выход из домена медленным), вы можете поместить его в свои локальные данные приложения вместо этого:

…а также копирование в (и обновление вашего , конечно).

Каждый, кто работает над npm, знает, что этот процесс сложен и чреват опасностями, и мы работаем над тем, чтобы сделать его проще. Оставайтесь с нами.

Как это работает

Рабочие процессы (worker processes) создаются с помощью метода , таким образом, они могут связываться с родительскими процессами через и передавать обработчики сервера в обе стороны.

Модуль кластеров поддерживает два метода распределения входящих соединений.

Первый (тот, что по умолчанию на всех платформах, кроме Windows) использует циклический подход, где главный процесс «слушает» порт, принимая новые соединения и распределяя их между рабочими процессами по циклическому методу, с некоторыми встроенными функциями для предупреждения перегрузки рабочего процесса.

Второй метод заключается в том, что главный процесс создает «прослушивающий» сокет () и отправляет его нужным рабочим процессам. В таком случае процессы принимают напрямую входящие соединения.

Теоретически, второй метод должен давать более высокую производительность. На практике же распределение, как правило, является очень несбалансированным из-за капризной работы планировщика задач операционной системы. Загрузки рассматриваются в том случае, если более 70% всех соединений заканчиваются только в двух процессах из всех восьми.

Так как дает большую часть работы главному процессу, есть три случая, когда отличается поведение между обычным процессом Node.js и рабочим кластерным:

  1. Так как сообщение передается главному процессу, файловый дескриптор 7 в родительском процессе будет «прослушиваться» и передаваться с обработчиком рабочему процессу, вместо определения рабочим процессом назначения файлового дескриптора под номером 7.
  2. Явное прослушивание обработчиков привелет к тому, что рабочий процесс будет использовать данный обработчик вместо обращения к главному процессу. Если рабочий процесс уже имеет свой обработчик, предполагается, что вы знаете, что делаете.
  3. Обычно эта команда заставляет серверы прослушивать рандомные порты. Однако, в кластерах каждый рабочий процесс получает одинаковый «рандомный» порт каждый раз, когда выполняется . По сути, порт является рандомным только первый раз, но во все последующие разы нет. Если вам нужно прослушать уникальный порт, следует сгенерировать номер порта, основываясь на ID кластерного рабочего процесса.

В Node.js нет логики маршрутизации, как и в вашей программе, и состояние не распределяется между рабочими процессами

Следовательно, важно разработать свою программу такой, чтобы она не слишком опиралась на внутреннюю память данных объектов ради таких вещей, как сессии и авторизация

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

Включение подсистемы Windows для Linux и платформы виртуальных машинEnable Windows Subsystem for Linux and Virtual Machine Platform

  1. По-прежнему в параметрах Windowsвыполните поиск по запросу Включение или отключение компонентов Windows.While still in Windows Settings, search for Turn Windows features on or off.

  2. После появления списка компонентов Windows прокрутите экран, чтобы найти платформу виртуальных машин и подсистему Windows для Linux, убедитесь, что флажок установлен, и нажмите кнопку ОК.Once the Windows Features list appears, scroll to find Virtual Machine Platform and Windows Subsystem for Linux, ensure that the box is checked to enable both, then select OK.

  3. При появлении соответствующего запроса перезагрузите компьютер.Restart your computer when prompted.

Установка предпочтительного редактора кодаInstall your favorite code editor

Рекомендуется установить VS Code, а также пакет расширения Node. jsдля разработки с помощью Node. js в Windows.We recommend you install VS Code, as well as the Node.js Extension Pack, for developing with Node.js on Windows. Установите их все или выберите, чтобы выбрать наиболее полезные данные.Install them all or pick and choose which seem the most useful to you.

Чтобы установить пакет расширений Node. js, выполните следующие действия.To install the Node.js extension pack:

  1. Откройте окно расширения (CTRL + SHIFT + X) в VS Code.Open the Extensions window (Ctrl+Shift+X) in VS Code.
  2. В поле поиска в верхней части окна расширения введите: «пакет расширения узла» (или имя любого искомого расширения).In the search box at the top of the Extensions window, enter: «Node Extension Pack» (or the name of whatever extension you are looking for).
  3. Щелкните Установить.Select Install. После установки расширение появится в папке «включено» в окне расширений .Once installed, your extension will appear in the «Enabled» folder of your Extensions window. Вы можете отключить, удалить или настроить параметры, щелкнув значок шестеренки рядом с описанием нового расширения.You can disable, uninstall, or configure settings by selecting the gear icon next to the description of your new extension.

Некоторые дополнительные расширения можно использовать в следующих случаях:A few additional extensions you may want to consider include:

  • Отладчик для Chrome. После завершения разработки на стороне сервера с помощью Node. js необходимо разработать и протестировать клиентскую часть.Debugger for Chrome: Once you finish developing on the server side with Node.js, you’ll need to develop and test the client side. Это расширение интегрирует редактор VS Code в службу отладки браузера Chrome, делая их более эффективными.This extension integrates your VS Code editor with your Chrome browser debugging service, making things a bit more efficient.
  • Раскладки клавиатуры из других редакторов: эти расширения могут помочь вашей среде, если вы перейдете из другого текстового редактора (например, Atom, подтравя, Vim, EMacs, Notepad + + и т. д.).Keymaps from other editors: These extensions can help your environment feel right at home if you’re transitioning from another text editor (like Atom, Sublime, Vim, eMacs, Notepad++, etc).
  • Синхронизация параметров: позволяет синхронизировать параметры VS Code в разных установках с помощью GitHub.Settings Sync: Enables you to synchronize your VS Code settings across different installations using GitHub. Если вы работаете на разных компьютерах, это обеспечит согласованность среды между ними.If you work on different machines, this helps keep your environment consistent across them.
Ссылка на основную публикацию