Обновление npm при использовании nvm-windows

Я использую nvm-windows версии 1.1.7.

Я только что установил узел 11.9.0.

nvm устанавливает версию 6.5.0 npm вместе с версией этого узла. Тем не менее, уже доступна версия npm 6.7.0.

Когда я сейчас делаю npm i -g npm Я получил:

npm ERR! path C:\Program Files\nodejs\npm.cmd
npm ERR! code EEXIST
npm ERR! Refusing to delete C:\Program Files\nodejs\npm.cmd: is outside C:\Program Files\nodejs\node_modules\npm and not a link
npm ERR! File exists: C:\Program Files\nodejs\npm.cmd
npm ERR! Move it away, and try again.

Я не нашел способа избежать этого.

10 ответов

Решение

У меня была такая же проблема, так что для тех, кто находит это здесь...

В этом выпуске доступно несколько способов windows-nvm GitHub репо:

https://github.com/coreybutler/nvm-windows/issues/300

Есть примеры использования DOS, PowerShell, bash и пакетных сценариев. Надеюсь это поможет!

Это дубликат моего ответа здесь: /questions/9050176/kak-ya-mogu-izmenit-versiyu-npm-s-pomoschyu-nvm/9050185#9050185

Вот как я обновляю npm при запуске nvm-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

И бум, модернизированный.

У меня операционная система windows 10.

Я установил следующим образом.

cd %APPDATA%\nvm\v8.11.3
move npm 5.6.0
move npm.cmd 5.6.0.cmd
cd node_modules\
move npm 5.6.0
cd 5.6.0\bin
node npm-cli.js i -g npm@latest

Мне пришлось заставить это:-/

Когда дело дошло до

node npm-cli.js i -g npm@latest

Я бы предпочел использовать

node npm-cli.js i -g npm@latest --force

возможно, чтобы преодолеть ошибку разрешения, связанную с перезаписью ссылки "C:\Program Files\nodejs". Надеюсь, это кому-то поможет...

  1. скачать это файл обновление,npm.bat
  2. откройте PowerShell в той же папке и запустите эту команду updateNpm.bat latest

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

  1. Перейдите к соответствующей папке узла ( cd C:\Users\yourUser\AppData\Roaming\nvm\vxx.xx.x)
  2. переименовать нпм -> нпм2
  3. переименовать npm.cmd -> npm2.cmd
  4. переименовать npx -> npx2
  5. переименовать npx.cmd -> npx2.cmd
  6. Бежать npm2 install -g npm@your-version
  7. новый npm создаст файлы npm, npm.cmd, npx, npx.cmd, поэтому вы можете удалить предыдущие переименованные файлы

Это то, что у меня работает. Надеюсь, это будет полезно.

Я тоже счел необходимым установить windows-nvm к c:\nvm а также c:\nodejs для предотвращения проблем с неподдерживаемыми путями с пробелами.

rm C:\nodejs\npm*
rm C:\nodejs\npx*
mv C:\nodejs\node_modules\npm C:\nodejs\node_modules\npm-old
node C:\nodejs\node_modules\npm-old\bin\npm-cli.js i -g npm@next

У меня проблема возникает только при обновлении npm с помощью npm v6.
Поэтому использование более новой версии npm через npx для запуска обновления работает для меня.

      For the very newest version
npx npm install -g npm

Or use a specific version
npx npm@7 install -g npm@7

Я столкнулся с этой проблемой сегодня, и я решил, что установил последний узел с nvm, а затем скопировал файлы npm из последней версии в версию, в которой я работаю.

      nvm install latest
cd AppData/Roaming/nvm/LATEST
xcopy npm.cmd ../LTS && xcopy npm ../LTS && xcopy node_modules/npm ../LTS

Затем я подтвердил, что он работает, пытаясь скомпилировать мой код, который ломается на последней версии.

это сработало для меня curl -L https://npmjs.org/install.sh | sh

Другие вопросы по тегам