Как я могу изменить версию npm с помощью nvm?



Я использую NVM для установки последних версий nodeJS для моей работы с узлом. Он отлично работает для установки отдельных версий и переключения между ними. Он также устанавливает последнюю версию NPM в каждом локальном .../ папка bin вместе с двоичным узлом узла. Однако, похоже, нет никакого способа переключить версию NPM, которую я использую (или, по крайней мере, я не могу понять это).



единственное решение, которое я могу придумать сам, это удалить двоичный файл, который это по умолчанию (который является NPM, который был установлен, когда я впервые установил узел с NVM), и на его место поставить последний двоичный файл NPM. Однако мне интересно, есть ли какие-либо лучшие способы сделать это.

1005   10  

10 ответов:

через три года после того, как этот вопрос был впервые задан, кажется, что ответ теперь намного проще. Просто обновите версию, которую установил nvm, которая живет в ~/.nvm/versions/node/[your-version]/lib/node_modules/npm.

Я только что установил узел 4.2.2, который поставляется с npm 2.14.7, но я хочу использовать npm 3. Так я и сделал:

cd ~/.nvm/versions/node/v4.2.2/lib
npm install npm

легко!

и да, это должно работать для любого модуля, а не только npm, который вы хотите быть "глобальным" для конкретной версии узла.


изменить 1: в самая новая версия,npm -g умный и устанавливает модули в путь выше вместо глобального системного пути.


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

nvm теперь имеет команду для обновления npm. Это nvm install-latest-npm или npm install --latest-npm.

спасибо philraj для указания на это в комментарии.

nvm не обрабатывает npm.

так что если вы хотите установить узел 0.4.x (от которого все еще зависят многие пакеты) и использовать NPM, вы все еще можете использовать npm 1.0.x.

установить узел 0.6.x (который поставляется с npm 1.1.x) и установить nvm с npm:

npm install nvm
. ~/nvm/nvm.sh

установить узел 0.4.x с nvm:

nvm install v0.4.12
nvm use v0.4.12

установка НПМ с помощью install.sh (обратите внимание на -L param, чтобы следовать любым перенаправлениям):

curl -L https://npmjs.org/install.sh | sh

это позволит обнаружить узел 0.4.12 и установить npm 1.0.106 в папке ~/nvm/v0.4.12/lib/node_modules и создайте символическую ссылку для nvm

~/nvm/v0.4.12/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js

если вы попытаетесь запустить npm, он все равно даст ошибку, но если вы это сделаете nvm use v0.4.12 опять же, теперь он должен работать.

изменение версий npm на ОС на базе linux еще не является прямым командным процессом. Я сделал следующее, чтобы вернуться к старой версии НПМ. Это должно работать, чтобы получить любую версию НПМ работает. Сначала установите версию npm, которую вы хотите использовать:

sudo npm install -g [email protected]

удалите ссылку sym в /usr / local / bin/

sudo rm /usr/local/bin/npm

воссоздайте ссылку sym, используя нужную версию npm, которую вы установили

sudo ln -s /usr/bin/[email protected] /usr/local/bin/npm

nvm теперь имеет команду для обновления npm. Это nvm install-latest-npm или npm install --latest-npm.

npm install [email protected] -g
npm install [email protected] -g

глядя на www.npmjs.com/install.sh я обнаружил, что есть способ установить определенную версию, установив переменную окружения

export npm_install="2.14.14"

затем запустите скрипт загрузки, как описано в npmjs.com:

curl -L https://www.npmjs.com/install.sh | sh

Если вы опустите параметр npm_install переменная, затем она установит версию, которую они отметили как последний

в windows, запустите терминал от имени администратора (в случае, если есть проблемы с разрешениями, как у меня было). Затем используйте конкретную версию узла (скажем, 7.8.0) по

nvm use 7.8.0

затем обновите npm до нужной конкретной версии с помощью

npm install -g [email protected]

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

cd %APPDATA%\nvm\v8.10.0           # or whatever version you're using
mv npm npm-old
mv npm.cmd npm-old.cmd
cd node_modules\
mv npm npm-old
cd npm-old\bin
node npm-cli.js i -g npm@latest

и бум, я вернулся в бизнес.

небольшое изменение в инструкции выше, работает для меня. (MacOS Sierra 10.12.6)

npm install -g [email protected]
rm /usr/local/bin/npm
ln -s ~/.npm-packages/bin/npm /usr/local/bin/npm
npm --version

а как же npm i -g npm? Вы тоже пытались это запустить?

Comments

    Ничего не найдено.