Обновление 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". Надеюсь, это кому-то поможет...
- скачать это файл обновление,npm.bat
- откройте PowerShell в той же папке и запустите эту команду
updateNpm.bat latest
Я попробовал скрипт и другие решения, это, безусловно, самый простой способ:
- Перейдите к соответствующей папке узла (
cd C:\Users\yourUser\AppData\Roaming\nvm\vxx.xx.x
) - переименовать нпм -> нпм2
- переименовать npm.cmd -> npm2.cmd
- переименовать npx -> npx2
- переименовать npx.cmd -> npx2.cmd
- Бежать
npm2 install -g npm@your-version
- новый 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