Nvm-windows: nvm устанавливает узел, но не может доставить npm

Созданный на 3 июл. 2019  ·  47Комментарии  ·  Источник: coreybutler/nvm-windows

Моя среда

  • [х] Виндовс 10

Я использую версию NVM4W:

  • [х] 1.1.7

Я уже...

  • [x] прочтите README, чтобы быть в курсе ошибок npm и проблем с антивирусом.
  • [x] просмотрел вики , чтобы убедиться, что моя проблема еще не решена.
  • [x] подтверждено, что я использую учетную запись с правами администратора.
  • [x] просмотрел вопросы (открытые и закрытые), чтобы убедиться, что это не дубликат.
  • [x] убедился, что это не вопрос о том, как использовать NVM для Windows, поскольку gitter используется для вопросов и комментариев.

Моя проблема связана с (отметьте только те, которые применимы):

  • [ ] настройки.txt
  • [ ] поддержка прокси (Вы пробовали версию 1.1.0+?)
  • [ ] Поддержка 32 или 64 бит (вы пробовали версию 1.1.3+?)
  • [ ] Экранирование символов (Вы пробовали версию 1.1.6+?)
  • [x] Стандартная среда оболочки (терминал/powershell)
  • [ ] Нестандартная среда оболочки (Cmder, Hyper, Cygwin, git)

Ожидаемое поведение

После запуска nvm install latest устанавливается версия узла 12.5.0 и версия npm v6.9.0 .

Фактическое поведение

После команды установки ошибки не отображаются:

2019-07-03_09h10_55

возникает следующая проблема:

2019-07-03_09h11_08

Папка node_modules/ пуста:

2019-07-03_09h32_34

Действия по воспроизведению проблемы:

Просто установите версию и проверьте, что происходит. не знаю точно, как это работает, но, похоже, это связано с новым изменением URL-адреса проекта npm/cli.

Самый полезный комментарий

Есть такая же проблема. Это моя попытка и работает для меня:

  1. загрузите нужную версию узла с https://nodejs.org/en/download/releases/ в формате zip (или другом формате)
  2. Удалите каталог node_modules , если он уже существует в каталоге version drectory , расположенном в каталоге установки nvm (например, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. разархивируйте файл из шага 1 и скопируйте каталог node_modules в каталог version directory , указанный на предыдущем шаге.
  4. нпм работает

Все 47 Комментарий

Вы на 100% уверены, что используете 1.1.7? Я спрашиваю, потому что изменение npm/cli было жестко запрограммированной проблемой URL, которая существовала в 1.1.6 и была исправлена ​​в 1.1.7.

к сожалению, на 100% уверен @coreybutler
хахаха

вот мой скриншот версии:

2019-07-03_13h33_44

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

Извините, пришлось спросить :-)

Я не могу воссоздать это.

image

Обычно это сводится к а) разрешениям, б) проблемам с сетью во время загрузки. Иногда проблема с сетью возникает на удаленном сервере, особенно когда выпущен новый выпуск node/npm. Это сообщение об ошибке появляется постоянно, но по разным причинам, что затрудняет определение реального источника проблемы.

Чтобы воспроизвести эту проблему, мне пришлось удалить Node и NPM и выполнить новую установку, используя только NVM, после чего я получаю сообщение об ошибке.

pwrshell-nvm-install-latest

Я заметил, что в процессе установки материалы, связанные с NPM, загружаются во временную папку, но позже они никуда не перемещаются, а временная папка удаляется.
Даже запуская powershell от имени администратора, я не думаю, что это связано с разрешением.

Во время установки:
during-install

После установки:
after-install

@gsicoli Вы правы, что npm загружается во временный каталог, а затем перемещается. Если операция перемещения завершится неудачно, это приведет к удалению каталога без перемещения npm туда, где он должен быть (т.е. такое поведение).

Выдается запрос при запуске nvm use или nvm install ? Запуск от имени администратора не обязательно означает, что учетная запись имеет повышенные разрешения. Как правило, Windows предложит вам повысить разрешения. Для учетной записи администратора он предоставляется автоматически, но по-прежнему требует, чтобы пользователь сказал «ОК».

Он запрашивает, когда я не работаю от имени администратора. Если я запускаю от имени администратора, он не запрашивает... Тем не менее, эффект тот же.

Столкнулся с той же проблемой в Windows 10. Если есть какая-либо информация, которую я могу предоставить, буду рад помочь!

Однако это не похоже на определенную версию узла; папка node_modules всегда пуста для версий, которые я пытаюсь установить. У меня запрашиваются повышенные разрешения.

Есть такая же проблема. Есть ли обходной путь?

Есть такая же проблема. Это моя попытка и работает для меня:

  1. загрузите нужную версию узла с https://nodejs.org/en/download/releases/ в формате zip (или другом формате)
  2. Удалите каталог node_modules , если он уже существует в каталоге version drectory , расположенном в каталоге установки nvm (например, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. разархивируйте файл из шага 1 и скопируйте каталог node_modules в каталог version directory , указанный на предыдущем шаге.
  4. нпм работает

Есть такая же проблема. Итак, я применил обходной путь от @liuwenzhuang. Действительно, теперь npm работает нормально. Однако я получаю следующую ошибку на npm up -g
62166164-56513a00-b320-11e9-8728-4d0cfeb758a9

Отключение McAfee и запуск установки из консоли администратора исправили это для меня.

@helzgate : для меня это не имеет смысла. Мои вирусные журналы ничего не показывают.
Можете ли вы предоставить журнал вашей деятельности McAfee?

Я могу подтвердить это. При включенном mcafee npm распаковывается, но перемещение не выполняется без ошибок. Журналы McAfee вообще ничего не показывают. Отключение mcafee во время установки решает проблему.
@coreybutler Я знаю, что это не очень хорошее решение, но, видимо, распаковка работает, так можно ли распаковать напрямую в папку nodes_module/npm вместо того, чтобы распаковывать во временную папку и перемещать?

Я сталкиваюсь с той же проблемой, но, похоже, это происходит только при установке узла 6 (или это происходит из-за того, что я установил узел 6 после выполнения nvm install latest ?). Установка NPM зависает на неопределенный срок, и я сталкиваюсь с той же ошибкой npm-cli , как указано выше.

У меня установлен McAfee Endpoint Security, но, поскольку это управляемый ПК в офисе, отключить его, чтобы проверить, не в нем ли проблема, невозможно. NPM продолжает зависать после 10 минут начала процесса установки. Нет ли способа изменить NVM, чтобы, по крайней мере, обнаруживать зависания или то, что процесс не завершен должным образом?

Обратите внимание, этот комментарий полностью работает! Было бы здорово, если бы это сделал установщик nvm .

@matthew-dean То же самое и с McAfee. Хотя они неправильно определили мои разрешения, поэтому я могу отключить их. Я посмотрю, является ли это причиной проблемы, завтра, когда я вернусь на работу. Я бы не удивился; установщик пакетов dart сообщил об аналогичной проблеме при установке некоторого пакета (который также работал при загрузке во временный файл и последующем перемещении в другое место).

Да, это действительно проблема для меня! Там есть какая-то операция, которую McAfee Endpoint Security автоматически предотвращает.

Установка любой версии с активным McAfee => без npm
Установка любой версии с отключенным McAfee => npm включен и работает нормально

Упомянутая выше ошибка при выполнении npm update -g также связана с McAfee? Или это побочный эффект обходного пути ?

Не думайте так. Для меня ничего не изменилось, отключил ли я McAfee или нет. Также обратите внимание, что по этой теме уже есть две проблемы ( более длинная и более короткая со сценарием, который, кажется, позволяет вам обновлять npm (я не тестировал его, но у него более 30 лайков)

Спасибо! Следуя улучшенной версии этого скрипта для bash . (Возможно, вам потребуется настроить местоположение nodejs .) Добавьте его к вашему ~/.bashrc и выполните npmup в новом bash. Или сразу выполнить команды тела функции. Эта версия фактически выполняет обновление, а не (пере)установку каждый раз.

function npmup {
  pushd /c/Program\ Files/nodejs > /dev/null
  mv npm npm2
  mv npm.cmd npm2.cmd
  mv npx npx2
  mv npx.cmd npx2.cmd
  node node_modules/npm/bin/npm-cli.js up npm -g
  mv -n npm2 npm
  mv -n npm2.cmd npm.cmd
  mv -n npx2 npx
  mv -n npx2.cmd npx.cmd
  rm -f npm2 npm2.cmd npx2 npx2.cmd
  popd > /dev/null
}

Комментарий, на который я ссылался, был удален, извините за путаницу.

Используя 1.1.7, я столкнулся с той же проблемой, когда NPM не копировался из папки «temp» при выполнении новой установки Node.js + NPM с использованием NVM. Поскольку я использую корпоративный компьютер, я не могу провести тестирование с отключенным McAfee Endpoint Security.

Однако сегодня я собрал NVM из «мастера» и убедился, что он может правильно установить с нуля без проблем.

Обратите внимание, что проблема заключается не только в том, что NPM не удается установить, но и в том, что утилита командной строки NVM не может _распознать_, что NPM не был установлен. IMO, установщик не выполняет необходимый шаг проверки наличия каталога, что позволит избежать некоторой путаницы в этой проблеме.

@hind3nbug То же самое и для меня: McAfee Endpoint Security нельзя отключить на корпоративном компьютере, поэтому действительно нужен правильный способ установки NPM. Должен быть какой-то способ сделать это.

Используя 1.1.7, я столкнулся с той же проблемой, когда NPM не копировался из папки «temp» при выполнении новой установки Node.js + NPM с использованием NVM. Поскольку я использую корпоративный компьютер, я не могу провести тестирование с отключенным McAfee Endpoint Security.

Однако сегодня я собрал NVM из «мастера» и убедился, что он может правильно установить с нуля без проблем.

Можешь поделиться своей версией? Я не могу собрать nvm из исходного кода :(

@hind3nbug и @coreybutler... так проблема решена? а не вышла новая версия nvm? когда ожидается новая версия?

У меня был установлен Nodist до nvm-windows. Он оставил файл .npmrc в домашнем каталоге ( %userprofile% ). Мне пришлось удалить его и снова попробовать команду nvm use , чтобы все исправить.

Если бы это случилось со мной сегодня - удаление версии, а затем ее переустановка, похоже, решили проблему.

У меня был тихий сбой при установке npm.

Я подумал, что это может быть антивирусный сканер Windows, поэтому отключил его:
image

Странно теперь провал не молчит:

$ nvm install 12.12.0
Downloading node.js version 12.12.0 (64-bit)...
Complete
Creating C:\ProgramData\nvm\temp

Downloading npm version 6.11.3... Download failed. Rolling Back.
Rollback failed. remove C:\ProgramData\nvm\temp\npm-v6.11.3.zip: The process cannot access the file because it is being used by another process.
Could not download npm for node v12.12.0.
Please visit https://github.com/npm/npm/releases/tag/v6.11.3 to download npm.
It should be extracted to C:\ProgramData\nvm\v12.12.0

Вы запускали nvm on после установки?

Должен ли я делать это каждый раз, когда устанавливаю новую версию Node.js?

Я использую nvm уже пару лет, и раньше мне никогда не приходилось делать nvm on .

Я решил закрыть этот вопрос, потому что он начинает затрагивать ряд других вопросов. Давайте придерживаться одной проблемы в потоке. Откройте новую проблему, если ваша проблема не решена.

Попробую резюмировать на основе прочитанного:

1) npm будет установлен nvm. Если вы видите старый путь (npm/npm), вам необходимо обновить NVM4W до версии 1.1.7. Если у вас нет соответствующих разрешений, это не удастся. Такова природа и цель Windows, и поэтому существуют подсказки UAC.
2) Ваш антивирус может помешать NVM4W переместить файлы npm из временного каталога в его окончательное местоположение. Отключите его или сделайте исключение. См. пункт №3.
3) NVM4W был представлен всем основным антивирусным поставщикам и проходит (теоретически). Однако; антивирусное программное обеспечение постоянно меняет определения, что затрудняет отслеживание. Некоторые небрендовые антивирусы основывают свои определения на очень устаревших знаниях, наиболее сложной из которых является то, что некоторые программы полностью блокируются. Несколько лет назад в среде выполнения go было ложное срабатывание... давно уже был патч, и NVM4W в любом случае никогда не страдал от эксплойта... но некоторые антивирусные фирмы блокируют всю сигнатуру языка go.
4) Честно говоря, я никогда не выключаю и не включаю nvm. На самом деле вам не нужно этого делать, но он разработан, чтобы помочь протестировать вашу систему.

Есть такая же проблема. Это моя попытка и работает для меня:

  1. загрузите нужную версию узла с https://nodejs.org/en/download/releases/ в формате zip (или другом формате)
  2. Удалите каталог node_modules , если он уже существует в каталоге version drectory , расположенном в каталоге установки nvm (например, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. разархивируйте файл из шага 1 и скопируйте каталог node_modules в каталог version directory , указанный на предыдущем шаге.
  4. нпм работает

Я пробовал все в течение двух дней ... nvm, переустановка узла, перезапуск, изменение PATH, и это единственное, что действительно работало как шарм!

@coreybutler, могу ли я предложить добавить предложение @liuwenzhuang в readme.md или Common-Issues ?

Это может сэкономить чье-то время.

Привет, это мой случай, это сообщение в консоли дало мне понять об ошибке:

Посетите https://github.com/npm/npm/releases/tag/v6.14.4 , чтобы загрузить npm.

Переход на страницу https://github.com/npm/npm/ показывает, что репозиторий был перемещен и теперь находится по адресу https://github.com/npm/cli. То есть вам придется искать v6.14.4 в указанном репозитории.

Я также столкнулся с той же проблемой в Windows 10. И ее можно решить, отключив защиту McAffe.

Откройте McAffe Endpoint Security > Предотвращение угроз > Отключить защиту доступа и модуль сканирования при доступе (снимите флажок).
запустить > установить версию nvm

@coreybutler : я думаю, вы должны предоставить относительное уведомление, если npm не установлен должным образом.

Есть такая же проблема. Это моя попытка и работает для меня:

  1. загрузите нужную версию узла с https://nodejs.org/en/download/releases/ в формате zip (или другом формате)
  2. Удалите каталог node_modules , если он уже существует в каталоге version drectory , расположенном в каталоге установки nvm (например, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. разархивируйте файл из шага 1 и скопируйте каталог node_modules в каталог version directory , указанный на предыдущем шаге.
  4. нпм работает

Спасибо @liuwenzhuang Ваш комментарий действительно помог сегодня. уже несколько дней борюсь с этой ошибкой

Почему люди загружают node с веб-сайта для использования с nvm, разве не для этого предназначен nvm? 😉 можно вообще не использовать nvm.

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

Я удалил его в командной строке администратора:

del /f c:\Program Files\nodejs

Затем сделал новую символическую ссылку на версию, которую я скачал с помощью nvm:

mklink /j "C:\Program Files\nodejs" "C:\Users\USER_NAME\AppData\Roaming\nvm\NODE_VERSION"

Я не пробовал nvm use NODE_VERSION , но есть хороший шанс, что если вы удалите символическую ссылку перед ее вызовом, ссылка будет создана для вас (я предполагаю, что это ожидаемое поведение). Скорее всего, нужно будет использовать что-то вроде этого: https://github.com/imachug/win-sudo

Есть такая же проблема. Это моя попытка и работает для меня:

  1. загрузите нужную версию узла с https://nodejs.org/en/download/releases/ в формате zip (или другом формате)
  2. Удалите каталог node_modules , если он уже существует в каталоге version drectory , расположенном в каталоге установки nvm (например, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. разархивируйте файл из шага 1 и скопируйте каталог node_modules в каталог version directory , указанный на предыдущем шаге.
  4. нпм работает

Это сработало!!!

У меня также была такая же проблема с McAfee + Win 10 + PowerShell. - Большое спасибо @liuwenzhuang

Не знаю, почему это было закрыто, но у меня та же проблема, новая установка Windows 10, новая установка nvm, нет антивируса (кроме встроенного). Официальное исправление не для того, чтобы обойти ту самую причину, по которой я использую nvm, не так ли?

Этот комментарий работает для меня: https://github.com/coreybutler/nvm-windows/issues/475#issuecomment -538475058

Просто делаю nvm on ... Я думал, что это было «включено» сразу после установки 😄

Когда ваша локальная версия npm является последней, она может не установить ту же версию npm, когда вы устанавливаете последнюю ноду, произойдет ли это?

На одном из моих офисных компьютеров установлен McAfee, и я думаю, что он перестает устанавливать (копировать) папку npm. Но ниже шаг приходит как спасение для меня. Спасибо.

Есть такая же проблема. Это моя попытка и работает для меня:

  1. загрузите нужную версию узла с https://nodejs.org/en/download/releases/ в формате zip (или другом формате)
  2. Удалите каталог node_modules , если он уже существует в каталоге version directory , расположенном в каталоге установки nvm (например, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
  3. разархивируйте файл с шага 1 и скопируйте каталог node_modules в каталог version directory , указанный на предыдущем шаге.
  4. нпм работает

Это работает от меня, как шарм!!

Я думаю, добавление шага тестирования для подтверждения успешной установки любой версии от nodejs до nvm-windows будет очень полезно для экономии времени. Если это не удается, предоставьте некоторые вероятные идеи для ее решения.

@coreybutler думал?

Спасибо.

@Amitesh - я думаю, что проверка целостности - хорошая идея. Однако; У меня сейчас нет времени этим заниматься (см. вкладку обсуждения, первый пост). Я бы принял PR, если бы кто-то захотел добавить это.

Я все еще сталкиваюсь с проблемой, когда npm не распознается в Windows 10 для недавно установленного узла (10.23.0) с использованием nvm (1.1.7)
Я выполнил следующие шаги, но бесполезно

загрузите нужную версию узла с https://nodejs.org/en/download/releases/ в формате zip (или другом формате)
Удалите каталог node_modules, если он уже существует в каталоге версии, расположенном в каталоге установки nvm (например, C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4).
разархивируйте файл с шага 1 и скопируйте каталог node_modules в каталог версии, указанный на предыдущем шаге.
нпм работает
может кто-нибудь подсказать, как заставить это работать :( @coreybutler помогите, пожалуйста?
nvmerror
nvm npm _10 23 0

Просто нашел обходной путь, посмотрев комментарии, связанные с антивирусной защитой.

У меня Windows 10, 64-битная версия 1909 (сборка 18363.1139)

  1. В меню «Пуск» откройте приложение « Безопасность Windows ».
  2. Нажмите на плитку Защита от вирусов и угроз .
  3. В отображаемом интерфейсе выберите « Управление настройками » в разделе «Настройки защиты от вирусов и угроз».
  4. Отключить защиту в режиме реального времени
  5. В меню «Пуск» найдите « Командная строка », щелкните правой кнопкой мыши и «Запуск от имени администратора».
  6. запустите nvm install с той версией, которую вы хотите установить. npm теперь правильно установится. Проверьте использование nvm с версией, затем node -v и npm -v
  7. Вернитесь в приложение «Безопасность Windows» и снова включите защиту в реальном времени.
Была ли эта страница полезной?
0 / 5 - 0 рейтинги