[JavaScript, Node.JS] Управление версиями Node.js и NPM с помощью NVM (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Наш прошлый перевод про новые функции 15-й версии Node.js был очень хорошо принят читателями «Хабра», поэтому сегодня мы решили продолжить тему и рассказать, как настроить NVM с версией Node.js 15 и NPM 7.
Версия Node.js 15 была выпущена 20 октября 2020 года. Она поставляется с npm 7 и множеством новых функций. Вы уже успели опробовать новую версию?
Но подождите минутку! Node.js 15 и npm 7 содержат критические изменения. Не повредит ли тогда обновление существующим проектам?
Теоретически может повредить!
К счастью, у нас есть NVM (Node Version Manager), который избавит нас от этой опасности. Давайте детально рассмотрим данный инструмент, чтобы без проблем обновить версии node.js и npm.
Установка NVM
nvm управляет версиями node.js и npm. Он устанавливается для конкретного пользователя и может быть вызван отдельно для каждой оболочки. nvm работает с любой POSIX-совместимой оболочкой (sh, dash, ksh, zsh, bash), в том числе на платформах: unix, macOS и windows WSL.
nvm можно установить с помощью команд curl или wget:
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
Скрипт install.sh клонирует репозиторий nvm в ~/.nvm и пытается добавить исходные строки из приведенного ниже фрагмента в нужный файл профиля (~/.bash_profile, ~/.zshrc, ~/.profile или ~/.bashrc).
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
В ~/.bash_profile мы видим, что строки добавлены:
export NVM_DIR="/Users/fuje/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Использование NVM
Итак, мы установили nvm. Теперь используем данную команду для установки последней версии node.js:
$ nvm install node
Downloading and installing node v15.4.0...
Downloading https://nodejs.org/dist/v15.4.0/node-v15.4.0-darwin-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v15.4.0 (npm v7.0.15)
В выходных данных из примера выше указано, что npm 7.0.15 используется вместе с node.js 15.4.0. Проверим:
$ node -v
v15.4.0
$ npm -v
7.0.15
Также мы можем указать нужную версию для установки. Семантический формат версии определяется SemVer:
$ nvm install 10.14.0
Downloading and installing node v10.14.0...
Downloading https://nodejs.org/dist/v10.14.0/node-v10.14.0-darwin-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v10.14.0 (npm v6.4.1)
Если указанная версия уже была установлена, она не переустанавливается:
$ nvm install 10.14.0
v10.14.0 is already installed.
Now using node v10.14.0 (npm v6.4.1)
Мы можем вывести на экран все установленные версии:
$ nvm ls
-> v10.14.0
v10.15.0
v10.16.0
v12.16.0
v13.9.0
v15.4.0
system
default -> 12.16.0 (-> v12.16.0)
node -> stable (-> v15.4.0) (default)
stable -> 15.4 (-> v15.4.0) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/fermium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.23.0 (-> N/A)
lts/erbium -> v12.20.0 (-> N/A)
lts/fermium -> v14.15.1 (-> N/A)
В приведенных выше примерах вывода символ -> указывает, что текущая версия node.js — 10.14.0. Стрелка также представляет значения для default (12.16.0), node (15.4.0) и stable (15.4.0).
nvm use заменяет текущую версию:
$ nvm use 12.16.0
Now using node v12.16.0 (npm v6.14.8)
$ nvm use 10.16.0
Now using node v10.16.0 (npm v6.14.5)
$ nvm use 13.9.0
Now using node v13.9.0 (npm v6.13.7)
$ nvm use default
Now using node v12.16.0 (npm v6.14.8)
$ nvm use node
Now using node v15.4.0 (npm v7.0.15)
$ nvm use stable
Now using node v15.4.0 (npm v7.0.15)
Возможно, вы спросите, как так получилось, что v10.16.0 использует более позднюю версию npm, чем v13.9.0. Эту задачу можно решить с помощью следующих команд:
$ nvm use 10.16.0
$ npm install -g npm@6.14.5
Данная команда позволяет получить последнюю поддерживаемую версию npm для текущей версии Node.js:
$ nvm install-latest-npm
nvm use устанавливает нужную версию только для текущей оболочки. Если вы измените оболочку, только что обновленная версия node.js будет потеряна.
Как сделать определенную версию Node.js постоянной?
Версия по умолчанию — такая версия, которая распространяется на все оболочки.
Команда nvm alias позволяет установить версию по умолчанию.
$ nvm alias default 10.16.0
Для удобства можно создать файл .nvmrc, который принимает формат SemVer, node или default. После этого nvm use, nvm install, nvm exec, nvm run и nvm which будут использовать версию, указанную в файле .nvmrc, если в командной строке не указана другая.
$ cat .nvmrc
15.4.0
$ nvm use
Found '/Users/fuje/.nvmrc' with version <15.4.0>
Now using node v15.4.0 (npm v7.0.15)
Мы можем проверить текущую версию с помощью следующей команды:
$ nvm current
v15.4.0
ls-remote выводит на экран все доступные версии, но будьте готовы к очень длинному списку.
$ nvm ls-remote
Обратим внимание, что название версии в сокращенной форме значительно сокращает весь список.
$ nvm ls-remote 15
v15.0.0
v15.0.1
v15.1.0
v15.2.0
v15.2.1
v15.3.0
-> v15.4.0
nvm which указывает путь к исполняемому файлу, где nvm был установлен. Мы установили такие версии node.js, как 10.14.0, 10.15.0 и 10.16.0. Вот результаты nvm which:
$ nvm which 10.14.0
/Users/fuje/.nvm/versions/node/v10.14.0/bin/node
$ nvm which 10.15.0
/Users/fuje/.nvm/versions/node/v10.15.0/bin/node
$ nvm which 10.16.0
/Users/fuje/.nvm/versions/node/v10.16.0/bin/node
$ nvm which 10.15
/Users/fuje/.nvm/versions/node/v10.15.0/bin/node
$ nvm which 10.12
N/A: version "v10.12" is not yet installed.
You need to run "nvm install 10.12" to install it before using it.
$ nvm which 10
/Users/fuje/.nvm/versions/node/v10.16.0/bin/node
Указанную версию Node.js можно использовать непосредственно для запуска приложений:
$ nvm run 10.15.0 app.js
Как вариант, данная команда запускает node app.js с переменной PATH, указывающей на версию 10.15.0.
$ nvm exec 10.15.0 node app.js
Если вам нужно больше nvm-команд, запустите команду help:
$ nvm --help
Обновление NVM
Мы можем использовать nvm для обновления node.js и npm. Но как обновить сам nvm?
Давайте попробуем!
Перед обновлением у нас установлен nvm 0.34.0.
Обновляем до версии 0.37.2.
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 13527 100 13527 0 0 23046 0 --:--:-- --:--:-- --:--:-- 23083
=> nvm is already installed in /Users/fuje/.nvm, trying to update using git
=> => Compressing and cleaning up git repository
=> nvm source string already in /Users/fuje/.bash_profile
=> bash_completion source string already in /Users/fuje/.bash_profile
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
Как указано в выводе, нам нужно закрыть и снова открыть терминал, чтобы использовать новую версию:
$ nvm --version
0.37.2
По сравнению с версией 0.34.0, в версии 0.37.2 добавлена функция nvm set-colors для вывода на консоль.
По умолчанию nvm ls показывает следующие цвета:
Установим новые цвета:
$ nvm set-colors cgYmW
nvm ls отображает вывод с новыми цветами:
Заключение
nvm упрощает управление версиями node.js и npm. Теперь мы точно готовы перейти на node.js 15 и npm 7. Надеюсь, статья была полезной. Другие публикации автора можно найти здесь.
===========
Источник:
habr.com
===========
===========
Автор оригинала: Jennifer Fu
===========Похожие новости:
- [Ненормальное программирование, Разработка веб-сайтов, JavaScript, Программирование] Зачем мы используем addEventListener вместо onclick?
- [JavaScript, API] ExtendScript Работа с файлами
- [JavaScript, API] Extendscript «Hello World!!!»
- [Разработка веб-сайтов, JavaScript, Nginx] Солидные фронтенды: конфигурация
- [Информационная безопасность, JavaScript, История IT, Софт, IT-компании] Новая фишинговая атака использует азбуку Морзе для сокрытия вредоносных URL-адресов
- [JavaScript, SvelteJS] Svelte + Redux + Redux-saga
- [Настройка Linux, Разработка веб-сайтов, CSS, JavaScript] Просто вертикальный монитор не значит, что я на телефоне (перевод)
- [JavaScript, Монетизация мобильных приложений, Голосовые интерфейсы] Как создавать навыки для виртуальных ассистентов Салют, выйти на многомиллионную аудиторию Сбера и выиграть 2,5 млн руб?
- [JavaScript, ReactJS] createRef, setRef, useRef и зачем нужен current в ref
- [Компьютерное железо, Накопители] NVMe стирает разницу между памятью и накопителями (перевод)
Теги для поиска: #_javascript, #_node.js, #_timeweb, #_node.js, #_nvm, #_npm, #_blog_kompanii_timeweb (
Блог компании Timeweb
), #_javascript, #_node.js
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:38
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Наш прошлый перевод про новые функции 15-й версии Node.js был очень хорошо принят читателями «Хабра», поэтому сегодня мы решили продолжить тему и рассказать, как настроить NVM с версией Node.js 15 и NPM 7.
Версия Node.js 15 была выпущена 20 октября 2020 года. Она поставляется с npm 7 и множеством новых функций. Вы уже успели опробовать новую версию? Но подождите минутку! Node.js 15 и npm 7 содержат критические изменения. Не повредит ли тогда обновление существующим проектам? Теоретически может повредить! К счастью, у нас есть NVM (Node Version Manager), который избавит нас от этой опасности. Давайте детально рассмотрим данный инструмент, чтобы без проблем обновить версии node.js и npm. Установка NVM nvm управляет версиями node.js и npm. Он устанавливается для конкретного пользователя и может быть вызван отдельно для каждой оболочки. nvm работает с любой POSIX-совместимой оболочкой (sh, dash, ksh, zsh, bash), в том числе на платформах: unix, macOS и windows WSL. nvm можно установить с помощью команд curl или wget: $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash Скрипт install.sh клонирует репозиторий nvm в ~/.nvm и пытается добавить исходные строки из приведенного ниже фрагмента в нужный файл профиля (~/.bash_profile, ~/.zshrc, ~/.profile или ~/.bashrc). export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm В ~/.bash_profile мы видим, что строки добавлены: export NVM_DIR="/Users/fuje/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion Использование NVM Итак, мы установили nvm. Теперь используем данную команду для установки последней версии node.js: $ nvm install node
Downloading and installing node v15.4.0... Downloading https://nodejs.org/dist/v15.4.0/node-v15.4.0-darwin-x64.tar.xz... ######################################################################## 100.0% Computing checksum with shasum -a 256 Checksums matched! Now using node v15.4.0 (npm v7.0.15) В выходных данных из примера выше указано, что npm 7.0.15 используется вместе с node.js 15.4.0. Проверим: $ node -v
v15.4.0 $ npm -v 7.0.15 Также мы можем указать нужную версию для установки. Семантический формат версии определяется SemVer: $ nvm install 10.14.0
Downloading and installing node v10.14.0... Downloading https://nodejs.org/dist/v10.14.0/node-v10.14.0-darwin-x64.tar.xz... ######################################################################## 100.0% Computing checksum with shasum -a 256 Checksums matched! Now using node v10.14.0 (npm v6.4.1) Если указанная версия уже была установлена, она не переустанавливается: $ nvm install 10.14.0
v10.14.0 is already installed. Now using node v10.14.0 (npm v6.4.1) Мы можем вывести на экран все установленные версии: $ nvm ls
-> v10.14.0 v10.15.0 v10.16.0 v12.16.0 v13.9.0 v15.4.0 system default -> 12.16.0 (-> v12.16.0) node -> stable (-> v15.4.0) (default) stable -> 15.4 (-> v15.4.0) (default) iojs -> N/A (default) unstable -> N/A (default) lts/* -> lts/fermium (-> N/A) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.17.1 (-> N/A) lts/carbon -> v8.17.0 (-> N/A) lts/dubnium -> v10.23.0 (-> N/A) lts/erbium -> v12.20.0 (-> N/A) lts/fermium -> v14.15.1 (-> N/A) В приведенных выше примерах вывода символ -> указывает, что текущая версия node.js — 10.14.0. Стрелка также представляет значения для default (12.16.0), node (15.4.0) и stable (15.4.0). nvm use заменяет текущую версию: $ nvm use 12.16.0
Now using node v12.16.0 (npm v6.14.8) $ nvm use 10.16.0 Now using node v10.16.0 (npm v6.14.5) $ nvm use 13.9.0 Now using node v13.9.0 (npm v6.13.7) $ nvm use default Now using node v12.16.0 (npm v6.14.8) $ nvm use node Now using node v15.4.0 (npm v7.0.15) $ nvm use stable Now using node v15.4.0 (npm v7.0.15) Возможно, вы спросите, как так получилось, что v10.16.0 использует более позднюю версию npm, чем v13.9.0. Эту задачу можно решить с помощью следующих команд: $ nvm use 10.16.0
$ npm install -g npm@6.14.5 Данная команда позволяет получить последнюю поддерживаемую версию npm для текущей версии Node.js: $ nvm install-latest-npm
nvm use устанавливает нужную версию только для текущей оболочки. Если вы измените оболочку, только что обновленная версия node.js будет потеряна. Как сделать определенную версию Node.js постоянной? Версия по умолчанию — такая версия, которая распространяется на все оболочки. Команда nvm alias позволяет установить версию по умолчанию. $ nvm alias default 10.16.0
Для удобства можно создать файл .nvmrc, который принимает формат SemVer, node или default. После этого nvm use, nvm install, nvm exec, nvm run и nvm which будут использовать версию, указанную в файле .nvmrc, если в командной строке не указана другая. $ cat .nvmrc
15.4.0 $ nvm use Found '/Users/fuje/.nvmrc' with version <15.4.0> Now using node v15.4.0 (npm v7.0.15) Мы можем проверить текущую версию с помощью следующей команды: $ nvm current
v15.4.0 ls-remote выводит на экран все доступные версии, но будьте готовы к очень длинному списку. $ nvm ls-remote
Обратим внимание, что название версии в сокращенной форме значительно сокращает весь список. $ nvm ls-remote 15
v15.0.0 v15.0.1 v15.1.0 v15.2.0 v15.2.1 v15.3.0 -> v15.4.0 nvm which указывает путь к исполняемому файлу, где nvm был установлен. Мы установили такие версии node.js, как 10.14.0, 10.15.0 и 10.16.0. Вот результаты nvm which: $ nvm which 10.14.0
/Users/fuje/.nvm/versions/node/v10.14.0/bin/node $ nvm which 10.15.0 /Users/fuje/.nvm/versions/node/v10.15.0/bin/node $ nvm which 10.16.0 /Users/fuje/.nvm/versions/node/v10.16.0/bin/node $ nvm which 10.15 /Users/fuje/.nvm/versions/node/v10.15.0/bin/node $ nvm which 10.12 N/A: version "v10.12" is not yet installed. You need to run "nvm install 10.12" to install it before using it. $ nvm which 10 /Users/fuje/.nvm/versions/node/v10.16.0/bin/node Указанную версию Node.js можно использовать непосредственно для запуска приложений: $ nvm run 10.15.0 app.js
Как вариант, данная команда запускает node app.js с переменной PATH, указывающей на версию 10.15.0. $ nvm exec 10.15.0 node app.js
Если вам нужно больше nvm-команд, запустите команду help: $ nvm --help
Обновление NVM Мы можем использовать nvm для обновления node.js и npm. Но как обновить сам nvm? Давайте попробуем! Перед обновлением у нас установлен nvm 0.34.0. Обновляем до версии 0.37.2. $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 13527 100 13527 0 0 23046 0 --:--:-- --:--:-- --:--:-- 23083 => nvm is already installed in /Users/fuje/.nvm, trying to update using git => => Compressing and cleaning up git repository => nvm source string already in /Users/fuje/.bash_profile => bash_completion source string already in /Users/fuje/.bash_profile => Close and reopen your terminal to start using nvm or run the following to use it now: export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion Как указано в выводе, нам нужно закрыть и снова открыть терминал, чтобы использовать новую версию: $ nvm --version
0.37.2 По сравнению с версией 0.34.0, в версии 0.37.2 добавлена функция nvm set-colors для вывода на консоль. По умолчанию nvm ls показывает следующие цвета: Установим новые цвета: $ nvm set-colors cgYmW
nvm ls отображает вывод с новыми цветами: Заключение nvm упрощает управление версиями node.js и npm. Теперь мы точно готовы перейти на node.js 15 и npm 7. Надеюсь, статья была полезной. Другие публикации автора можно найти здесь. =========== Источник: habr.com =========== =========== Автор оригинала: Jennifer Fu ===========Похожие новости:
Блог компании Timeweb ), #_javascript, #_node.js |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:38
Часовой пояс: UTC + 5