Как установить определенную версию node js

Устанавливаем несколько версий Node.js

Устанавливаем несколько версий Node.js

При работе с Node.js нередко возникает необходимость держать в системе сразу несколько версий. Днем разрабатываем рабочий проект на последней стабильной версии, а вечером хотим познакомиться с особенностями последнего тестового билда. Или подключаемся к разработке проекта, который ориентирован на определенную версию Node.js. Переустанавливать Node.JS постоянно слишком утомительно, поэтому лучше сразу установить в системе Node Version Manager (Менеджер версий Node.js). Подробности установки под катом.

Установка Node Version Manager (NVM)

Проект Node Version Manager (NVM) хостится на GitHub и для его установки в систему хватит одной команды (я все проделывал в OS X). В окне терминала вводим:

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

Как работать с NVM

Для начала посмотрим какие версии Node.JS у нас уже установлены:

Для установки определенной версии Node.JS используем ключ install:

Сразу после установки новая версия становится активной. Для запуска определенной версии используем ключ run:

Установка, апгрейд и переустановка Node.js на Ubuntu

Node.js — это JavaScript платформа для общего назначения, которая позволяет пользователям быстро построить сетевые программы. На этой платформе при помощи JavaScript достигается цель построения как фронтенд, так и бэкэнд.

В данном гайде показывается несколько способов установки Node.js на Ubuntu 16.04 сервер.

Требования

В этом руководстве предполагается, что вы используете Ubuntu 16.04. Прежде чем начать, вы должны иметь учетную запись пользователя без полномочий root с привилегиями sudo, установленными в вашей системе.

Установка стабильной версии(Distro-Stable) Node.js на Ubuntu

Ubuntu 16.04 содержит версию Node.js в своих репозиториях по умолчанию, которые могут быть использованы для обеспечения последовательного взаимодействия с несколькими системами. На момент написания статьи версия в репозиториях — v4.2.6. Это будет не последняя версия, но она должна быть довольно стабильной и должна быть достаточной для быстрого экспериментирования с языком, но, возможно, что эта версия нам не подойдет, если требуется использоваться современные фишки или функции Node.js.

Чтобы получить эту версию, нам просто нужно использовать диспетчер пакетов apt. Сначала мы должны обновить наш локальный индекс пакета, а затем установить из репозиториев:

Если данная версия пакета Node.js в репозиториях Ubuntu соответствует вашим потребностям, то это все, что вам нужно сделать для установки. В большинстве случаев вы также захотите установить npm, который является менеджером пакетов Node.js. Вы можете сделать это, набрав:

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

Из-за конфликта с другим пакетом исполняемый файл из репозиториев Ubuntu называется nodejs вместо node. Помните об этом при запуске операций сервера.

Но, если мы хотим, чтобы команда nodejs была запущена и через команду node, надо будет сделать символическую ссылку. И есть несколько методов это сделать:

  • Вам нужно вручную создать символическую ссылку /usr/bin/node . Ярлык для совместимых с bash оболочек:
  • Или, если вы используете нестандартные оболочки, просто скопируйте путь, который вы найдете по команде which nodejs :
  • Возможно, что вышеизложенные оба метода могут вызвать конфликты имен, когда ссылаем команду node на nodejs. И для решения этого есть третий способ:

Это первый и, думаю, самый легкий способ установки Node.js на Ubuntu 16.04, но не самый гибкий, если, к примеру, мы хотим установить другую версию, а не Distro-Stable, которая валяется в репозиториях Ubuntu давненько.

Установка Node.js на Ubuntu 16.04, используя PPA

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

Но есть вероятность, что самая последняя версия Node.js может не работать в Ubuntu нашей версии, поэтому надо это учитывать и не пытаться устанавливать нестабильную или самую последнюю версию.

Данный метод, который может помочь нам получить более новую версию Node.js, является добавление из PPA (Personal Package Archive, Персональный Пакетный Архив), поддерживаемый NodeSource. Отсюда можно подгрузить более современную версию Node.js, чем официальные репозитории Ubuntu, и позволяет нам выбирать между Node.js v4.x (более старая долгосрочная версия поддержки, поддерживаемая до апреля 2017 года), v6. x (более поздняя версия LTS, которая будет поддерживаться до апреля 2018 года) и Node.js v7.x (текущая, активно развиваемая версия).

Во-первых, вам нужно установить PPA, чтобы получить доступ к его содержимому. Для этого необходимо убедиться, что мы находимся в своем домашней директории и используем curl, чтобы подгрузить скрипт установки для нашей предпочтительной версии. Ниже мы сейчас устанавливаем версию 7.x:

Мы можем проверить содержимое этого скрипта с помощью команды редактирования текстового документа nano (или вашего предпочтительного текстового редактора):

Скрипт установки Node.js надо запустить под sudo:

PPA будет добавлен в нашу конфигурацию, и наш локальный кеш пакетов Ubuntu будет обновлен автоматически. После запуска скрипта установки из nodeource мы можем установить пакет Node.js таким же образом, как мы это делали в первом случае:

Пакет nodejs содержит бинарный файл nodejs, а также менеджер пакетов npm, так что нам не нужно устанавливать npm отдельно. Однако для того, чтобы некоторые npm пакеты работали (например, те, которые требуют компиляции кода из исходного кода), нам необходимо установить пакет build-essential:

curl — это инструмент для загрузки или передачи файлов или данных с сервера или на сервер с использованием FTP, HTTP, HTTPS, SCP, SFTP, SMB и других поддерживаемых протоколов в Linux или Unix-подобной системе. Можно легко установить и использовать команду curl на Ubuntu Linux, используя команду apt или команду apt-get, чтобы использовать curl. Для установки данного инструмента необходимо выполнить команду

Установка Node.js на Ubuntu, используя NVM

Альтернативой установке Node.js через apt и PPA является использование специально разработанного инструмента, называемого nvm «Node.js version manager»(Менеджер Версий Node.js).

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

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

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

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

После проверки, если все нормально, запускаем этот скрипт при помощи команды bash:

Команда выше установит необходимые инструменты для работы в подкаталог нашего домашнего каталога

/.nvm. Он также добавит необходимые строки в файл

/.profile для работы.

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

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

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

Это выведет весь список возможных к установке версий Node.js

Как вы можете видеть, самая новая версия на момент написания этой статьи — v7.0.0. Мы можем установить его, набрав:

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

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

Это выведет что-то на подобие:

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

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

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

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

Мы можем с помощью npm установить пакеты в ./node_modules каталог проекта Node.js, используя обычный формат. Например, для express — модуля:

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

Это установит пакет в

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

Мы можем узнать больше о доступных нам параметрах с help из nvm, набрав:

Апгрейд Node.js через удаление и переустановку новой версии

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

Как мне указать локальную версию Node для проекта?

У меня есть проект, в котором мы пытаемся настроить Node и запустить его на машинах нескольких разработчиков. Проблема в том, что не все разработчики являются разработчиками Node (или даже JavaScript), и мы хотим убедиться, что у них есть версия Node, необходимая для запуска конкретного проекта (у разработчиков будет несколько проектов Node на их машинах).

Я читал о поле «engine» package.json, но не смог найти способ установить нужную мне версию Node. Для тестирования я установил текущую версию узла v0.10.29 через NVM, создал package.json, указав необходимый движок v0.11.13, и попытался запустить Node с помощью команды node , а также с помощью пакета. определенная json npm start команда.

Npm install, похоже, тоже не заботится о версии движка узла.

4 ответа

Я считаю, что engine и engineStrict предназначены для случаев, когда пакет устанавливается (через npm), а не для пытаясь выполнить что-то с помощью узла. Эти параметры предупреждают / запрещают пользователям устанавливать пакет, который не предназначен для работы (или совместимости) с версией узла, которую они используют в настоящее время.

У меня есть два решения этой проблемы .

Soln # 1 : используйте менеджер версий узлов, который может загружать и устанавливать Node и NPM для определенной версии (и архитектуры x86 / x64 для Windows), а затем позволяет разработчикам переключать версии.

Soln # 2 . Используйте образ Docker для запуска кода разработчика на виртуальной машине Linux с выбранной версией Node. Теперь все ваши разработчики получают идентичную среду разработки, которая, как мы надеемся, будет соответствовать вашей окончательной среде развертывания.

В этом примере показано, как выполнить Dockerize ваше веб-приложение для развертывания. Во время разработки вы хотите заменить команду COPY . /src , используя том для монтирования кода из файловой системы вашего хоста, чтобы избежать перестройки образа при обновлении кода. Хитрость заключается в том, чтобы создать базовые образы, а затем получить образы разработки (./src — том) и развертывания (копии ./src).

Наконец, вы также можете использовать Docker для выполнения своих Тестирование CI

NVM + .nvmrc

Если вы используете NVM, как этот, что вам, вероятно, следует, тогда вы можете указать версию nodejs, необходимую для данного проекта, в файле с отслеживанием git .nvmrc :

Это не вступает в силу автоматически для cd , что разумно: пользователь должен затем сделать:

И теперь эта версия узла будет использоваться для текущей оболочки.

Вы можете перечислить версии узлов, которые у вас есть:

Протестировано с NVM 0.33.11.

Реестр npm включает в себя пакет под названием «узел». Это обычный пакет npm, который содержит только двоичный файл Node.js.

Итак, в вашей директории под вопросом:

npm install node@your.desired.version —save-exact

Затем поместите скрипт в ваш package.json следующим образом:

Чтобы проверить, запустите node -v в своем терминале в корне проекта, и вы должны увидеть версию, установленную на вашем компьютере. Сравните это, запустив npm run v , и вы увидите версию, которую вы установили для проекта. Таким образом, вы можете легко перемещаться по файловой системе и выполнять различные сборки, не изменяя конфигурацию глобального узла.

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

Примечание : установите для узла механизм для рекомендации — "это поле носит рекомендательный характер и генерирует предупреждения только тогда, когда ваш пакет установлен как зависимость."

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

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