Как изменить версию npm с помощью nvm?
Я использую NVM для установки последних версий Node.js для своей работы с Node.js. Все работает отлично: я могу устанавливать разные версии и переключаться между ними. NVM также устанавливает последнюю версию NPM в каждой локальной папке .../bin вместе с бинарным файлом Node.js. Однако, похоже, нет способа переключить версию NPM, которую я использую (по крайней мере, я не могу это выяснить).
Единственное решение, которое я могу придумать, это удалить тот бинарный файл, который по умолчанию используется (это NPM, установленный при первой установке Node через NVM), и вместо него разместить последнюю версию бинарного файла NPM. Однако есть ли лучший способ сделать это?
5 ответ(ов)
Да, npm может установить сам себя. Для этого просто используйте команду npm install
с глобальным флагом -g
, чтобы перезаписать установленную в данный момент версию npm.
Вот пример команды:
npm install [email protected] -g
Где x.x.x
— это версия, которую вы хотите установить. Например:
npm install [email protected] -g
Не забудьте заменить x.x.x
на нужную вам версию.
Для Node.js 0.4 или ниже: nvm не обрабатывает npm.
Если вам нужно установить Node.js 0.4.x (от которого по-прежнему зависят многие пакеты) и использовать NPM, вы всё ещё можете использовать npm 1.0.x.
Сначала установите Node.js 0.6.x (который приходит с npm 1.1.x) и установите nvm с помощью npm:
npm install nvm
. ~/nvm/nvm.sh
Теперь установите Node.js 0.4.x с помощью nvm:
nvm install v0.4.12
nvm use v0.4.12
Установите npm, используя install.sh (обратите внимание на параметр -L
для следования перенаправлениям):
curl -L https://npmjs.org/install.sh | sh
Это обнаружит Node.js 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
, всё должно заработать.
Если вы на Windows и у вас возникли проблемы с установкой или обновлением npm (например, ошибки о том, что файлы мешают), попробуйте следующие шаги:
Откройте командную строку и перейдите в папку с вашей версией Node.js:
cd %APPDATA%\nvm\v8.10.0 # или другую версию, которую вы используете
Переименуйте папки
npm
иnpm.cmd
, чтобы освободить место для новой установки:mv npm npm-old mv npm.cmd npm-old.cmd
Перейдите в папку
node_modules
:cd node_modules\
Переименуйте
npm
вnpm-old
:mv npm npm-old
Затем перейдите в папку
npm-old/bin
и выполните команду для установки последней версии npm:cd npm-old\bin node npm-cli.js i -g npm@latest
Вернитесь в папку с вашей версией Node.js:
cd %APPDATA%\nvm\v8.10.0 # или другую версию, которую вы используете
Удалите старые папки:
rm npm-old rm npm-old.cmd cd node_modules\ rm -rf npm-old
И вуаля! Теперь ваш npm снова работает.
Теперь в nvm появилась команда для обновления npm. Вы можете использовать nvm install-latest-npm
или npm install --latest-npm
.
В Windows запустите терминал от имени администратора (в случае, если возникли проблемы с разрешениями, как у меня). Затем используйте конкретную версию Node.js (например, 7.8.0) с помощью команды:
nvm use 7.8.0
После этого обновите npm до нужной вам версии с помощью команды:
npm install -g [email protected]
Как узнать версию установленного npm пакета?
В чем разница между --save и --save-dev?
Как задать переменные окружения из файла package.json?
Как использовать исполняемые файлы из пакета, установленного локально в node_modules?
Как указать необходимую версию Node.js в файле package.json?