Nvm-windows: Ошибка npm: "Не удается найти модуль" semver "(узел v8.4.0)

Созданный на 15 сент. 2017  ·  39Комментарии  ·  Источник: coreybutler/nvm-windows

Если это вопрос о том, как использовать NVM4W, используйте вместо этого stackoverflow .

Если это проблема с антивирусом, обязательно сначала найдите существующие проблемы.

Моя среда

  • [] Windows 7 или более ранняя версия (на самом деле не поддерживается из-за EOL - подробности см. В вики)
  • [ ] Windows 8
  • [] Windows 8.1
  • [X] Windows 10
  • [] Windows 10 IoT Core
  • [] Windows Server 2012
  • [] Windows Server 2012 R2
  • [] Windows Server 2016

  • [] Моя установка Windows не на английском языке.

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

  • [] 1.1.6
  • [X] 1.1.5
  • [] 1.1.4
  • [] 1.1.3
  • [] 1.1.2
  • [] 1.1.1
  • [ ] Старший
  • [] ДРУГОЕ (укажите)

Я уже...

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

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

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

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

Верните правильный номер версии.

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

module.js: 491
бросить ошибку;
^

Ошибка: не удается найти модуль semver
в Function.Module._resolveFilename (module.js: 489: 15)
в Function.Module._load (module.js: 439: 25)
в Module.require (module.js: 517: 17)
при требовании (internal / module.js: 11:18)
на объекте.(C: \ Users \ leofu \ AppData \ Roaming \ nvm \ nvm \ v8.4.0 \ node_modules \ npm \ lib \ utils \ unsupported.js: 2:14)
в Module._compile (module.js: 573: 30)
в Object.Module._extensions..js (module.js: 584: 10)
в Module.load (module.js: 507: 32)
в tryModuleLoad (module.js: 470: 12)
в Function.Module._load (module.js: 462: 3)
module.js: 491
бросить ошибку;
^

Ошибка: не удается найти модуль semver
в Function.Module._resolveFilename (module.js: 489: 15)
в Function.Module._load (module.js: 439: 25)
в Module.require (module.js: 517: 17)
при требовании (internal / module.js: 11:18)
на объекте.(C: \ Users \ leofu \ AppData \ Roaming \ nvm \ nvm \ v8.4.0 \ node_modules \ npm \ lib \ utils \ unsupported.js: 2:14)
в Module._compile (module.js: 573: 30)
в Object.Module._extensions..js (module.js: 584: 10)
в Module.load (module.js: 507: 32)
в tryModuleLoad (module.js: 470: 12)
в Function.Module._load (module.js: 462: 3)

Шаги по воспроизведению проблемы:

nvm установить 8.4.0
nvm использовать 8.4.0
npm -v

help wanted

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

То же самое с последней версией 8.8.1.
Не уверен, как исправить это с помощью NVM, поскольку SO предлагает просто переустановить узел. Учитывая характер установки nvm, не уверен, как воспроизвести эти шаги. Значит, единственный способ использовать узел v8 - просто не использовать NVM?
https://stackoverflow.com/questions/33870520/npm-install-cannot-find-module-semver

Обходной путь

  1. nvm install 8.8.1 (или другая версия по вашему желанию). Не переключайтесь на это (пока).
  2. Загрузите * .zip той же версии узла с официального сайта (https://nodejs.org/en/download/current/)
  3. Запасное содержимое %APPDATA%/nvm/v8.8.1/npm за npm папки из скачанного архива
  4. nvm use 8.8.1
  5. наслаждаться

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

Это ошибка npm, а не полностью ошибка NVM. Я бы посоветовал переустановить узел 8.4.0 .... возможно, загрузка npm была плохой или что-то было повреждено.

@coreybutler Это не сработает, продолжает терпеть неудачу даже при деактивации, удалении, ручном удалении папки, переустановке и повторной активации. Та же ошибка.

Я даже скопировал зависимости npm node_modules из другой работающей нормальной установки node 8.5.0 и все еще имел проблемы. Не могли бы вы подробнее изучить это и увидеть, в чем проблема?

Nvm - действительно удобный инструмент, но он больше не работает, а жаль :(

Не знаю, что вам сказать .... Я могу установить semver с той же настройкой.

image

@coreybutler только что открыл новый выпуск с подробностями

Моя собственная среда и шаги, которые я использовал для воспроизведения проблемы здесь (закрытый дубликат): # 305

То же самое с последней версией 8.8.1.
Не уверен, как исправить это с помощью NVM, поскольку SO предлагает просто переустановить узел. Учитывая характер установки nvm, не уверен, как воспроизвести эти шаги. Значит, единственный способ использовать узел v8 - просто не использовать NVM?
https://stackoverflow.com/questions/33870520/npm-install-cannot-find-module-semver

Обходной путь

  1. nvm install 8.8.1 (или другая версия по вашему желанию). Не переключайтесь на это (пока).
  2. Загрузите * .zip той же версии узла с официального сайта (https://nodejs.org/en/download/current/)
  3. Запасное содержимое %APPDATA%/nvm/v8.8.1/npm за npm папки из скачанного архива
  4. nvm use 8.8.1
  5. наслаждаться

спасибо @ roman-spiridonov только что столкнулся с той же ошибкой на узле 8.8.1, установленном через nvm в Windows, и ваш обходной путь, похоже, выполняет свою работу

Кажется, также работал с последней версией узла (9.1.0).

кажется, что npm, установленный из npm, не совместим с самим узлом, вы должны загрузить zip и заменить модуль npm, например, @ roman-spiridonov

@coreybutler, разве это не будет решаться? Я вижу точно такую ​​же ошибку - все, что выше = <8.0.

К сожалению, я не могу запустить npm i semver Я получаю ту же ошибку.

@ roman-spiridonov Я считаю, что "npm" - это не папка, а файл в загруженном .zip. Замена его загруженным, похоже, не решает для меня проблемы с семвером (я знаю, что другие добились успеха)

У меня та же проблема.

Для меня работает обходной путь @roman-spiridonov.

node 8.9.1
npm 5.5.1

@hyndsite вам нужно заглянуть в каталог node_modules - внутри это каталог npm . Используйте это, и это должно сработать.

Спасибо @powellian. Я обнаружил, что вчера и собирался опубликовать новое обновление в сообщении @ roman-spiridonov - что правильный путь - %APPDATA%/nvm/v8.8.1/node_modules/npm

Запутать дело помог файл "npm" в пути /nvm/vx.xx.

Спасибо, это работает, но теперь мне интересно, почему пакет, который загружает nvm, и тот, который мы загружаем, отличается?

Та же проблема с 8.9.0 и обходным путем @roman-spiridonov спасла положение.

Как и @benavern, мне любопытно, почему пакет, который устанавливает nvm, отличается от пакета в официальном репозитории.

То же самое в последней версии 8.9.4.
Ошибка была устранена путем удаления каталога «C: \ Users \ yourname \ AppData \ Roamingnvm \ v *» и повторного выполнения «nvm install».

Обходной путь:

Если вы столкнулись с этой проблемой и используете Windows 10, включите длинные пути с помощью редактора реестра или редактора локальной групповой политики.

Ссылка: https://github.com/coreybutler/nvm-windows/issues/305#issuecomment -345024594
Ссылка: https://superuser.com/a/1119948

Но мне все еще нужно было найти обходной путь @ roman-spiridonov. Однако мне не удалось скопировать папку npm в проводнике, вместо этого мне нужно было использовать robocopy:

robocopy "C:\Users\username\Downloads\node-v8.9.4-win-x64\node_modules\npm" "C:\Users\username\AppData\Roaming\nvm\v8.9.4\node_modules\npm" /mir

альтернатива перемещению nvm root. выполните nvm root C:\nvm перед установкой нового узла.
может также потребоваться скопировать дополнительные файлы в новый корень.
если уже установлено, то:

nvm uninstall 8.x.x
nvm root C:\nvm
copy /Y %APPDATA%\nvm\* C:\nvm
nvm install 8.x.x

У меня возникла та же проблема (ошибка: не удается найти модуль semver).

Несколько советов, которые помогут вам начать работу:

Сравнение файлов (с использованием официального zip-файла) показало, что действительно имеется> 4k файлов и папок, отсутствующих в node_modules\npm . Похоже, распаковка прервана. Проверено на v8.9.1 и v8.9.4: все node_modules в алфавитном порядке после libnpx отсутствуют. Не удивлюсь, если это относится к этой смехотворно вложенной структуре папок: ...\nvm\v8.9.4\node_modules\npm\node_modules\libnpx\node_modules\yargs\node_modules\read-pkg-up\node_modules\read-pkg\node_modules\load-json-file\node_modules\parse-json\node_modules\error-ex\node_modules\is-arrayish\

Я взял текущий мастер nvm-windows, добавил некоторую отладочную информацию в функцию установки в nvm.go , скомпилировал его (с Go 1.10 win x64) и заменил nvm.exe на новый. Результат:

  • Zip-файл npm, который загружается во временную директорию _is_, фактически является официальным. ( @benavern , @Akamaozu )
  • ZIP-файл был полностью извлечен во временный каталог и перемещен в папку для конкретной версии. Нет недостающих файлов.

А теперь самое удивительное, когда я пытался найти регрессию:

  • Выделил тег 1.1.6, скомпилировал (без изменений), заменил nvm.exe на новый, удалил v8.9.4, запустил nvm install 8.9.4 => успешно, отсутствующих файлов нет
  • Выделил тег 1.1.5, скомпилировал (без изменений), заменил nvm.exe на новый, удалил v8.9.4, запустил nvm install 8.9.4 => успешно, файлов нет
  • Заменил nvm.exe на исходный из официальной установки nvm-windows (1.1.5), удалил v8.9.4, запустил nvm install 8.9.4 => все еще ошибка , файлы отсутствуют.

Мне кажется, что есть проблема с процессом сборки и / или средой.

Было бы здорово, если бы кто-то другой мог попробовать, если воссоздание nvm.exe через build.bat или go build src/nvm.go решит проблему и для него / нее.

HTH, кодовая оболочка

Удалите папку npm из папки ниже
C: \ Usersusername \ AppData \ Roamingnpm
после => установка npm
У меня все работает нормально! ....

Просто столкнулся с этой проблемой сегодня, и это сработало для меня.
1) Откройте терминал bash
2) компакт-диск в C: \ Usersusername \ AppData \ Roamingnpm \ node_modules \
3) должен увидеть package.json
4) установка пряжи

@codeshell Спасибо за ваш анализ. Я обнаружил, что проблема связана с длинными путями, которые не поддерживаются в Windows. Для меня даже после загрузки zip-файла npm и замены содержимого C: \ Users \ yourname \ AppData \ Roamingnvm \ 9.11.1npm я получил ошибку. На самом деле я не мог скопировать все файлы из загруженного zip-файла npm из-за длинных имен.

Чтобы избежать этого, я удалил версию узла 9.11.1, а затем удалил nvm. Переустановил nvm на C: nvm. Теперь моя обычная «nvm install 9.11.1» работает нормально, и «npm» также находится в хорошем состоянии, что подтверждается запуском «npm -v».

Я знаю, что это довольно радикальное решение, но его нужно сделать только один раз.

Я выполнил эти шаги, и моя проблема была решена.

  1. удалить Node.js
  2. Удалите содержимое следующих папок
    C: \ Пользователи \\ AppData \ Roamingnpm-cache
    C: \ Пользователи \\ AppData \ Roamingnpm
    C: \ Program Files \ nodejs
  3. Затем снова установите Node _ https://nodejs.org/en/_

установка узла через nvm 1.6.0 у меня работала

В моем случае пути были слишком длинными. Я выбрал c: nvm в качестве диспетчера версий каталога установки и c: \ nodejs для каталога символических ссылок. Похоже, это решило проблему для меня.

У меня была такая же проблема с узлом v10.4.0, и у меня сработал обходной путь от романов-спиридонов.

Я уже удалил %AppData%\npm и т.д. перед установкой nvm-windows.

Пытался запустить 10.4.1, сначала были проблемы.

Он заработал после удаления папки из места установки вручную и повторной установки через nvm . Не уверен, что это слишком длинный путь (очевидно, нет) C:\Users\muser\AppData\Roaming\nvm\v10.4.1 .

Та же проблема с v10.5.0 и решением roman-spiridonovs у меня тоже работала.

У меня такая же проблема при установке последней версии узла v10.6.0, затем я просто удалил его и переключился на v8.11.3, проблема решена.

Я также пробовал скачать напрямую npm-v6.1.0.zip, при разархивировании у него есть ошибки.

Возникла та же проблема, что и у

проблема сохраняется с 10.6.0-64bit для полной чистой первой установки. (до этого не было узла / npm). Решение roman-spiridonovs продолжает работать (для меня папку npm теперь можно найти в [...node]\node_modules\npm )

Почему это все еще проблема спустя почти год?

Только что столкнулся с этой проблемой в Windows 10.

Включение длинных путей Win32 устранило проблему. См. Сообщение от @apptaro (2018-02-15)

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

После этого я мог снова установить npm используя nvm .

Я считаю, что nvm под Windows должен выдавать предупреждения, если длинные пути не включены. nvm install также не должен терпеть неудачу.

Для меня:

  • nvm install 9.11.2 была последней версией, которую я обнаружил, работающей через nvm.
  • Перезапись zip-файлом с сайта работает на любой версии.
  • Исправление длинных путей, похоже, не помогло (хотя я не думаю, что пытался перезапустить компьютер после изменения параметра реестра).

Это сценарий PowerShell, который мы используем для начинающих. Надеюсь, после перезагрузки они смогут обновиться до более поздней версии.

# Get Chocolatey which is required for the rest of this script
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco feature enable -n=allowGlobalConfirmation
choco upgrade chocolatey

choco upgrade nvm
$env:NVM_HOME = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("NVM_HOME","Machine"))
$env:NVM_SYMLINK = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("NVM_SYMLINK","Machine"))
$env:Path = [System.Environment]::ExpandEnvironmentVariables([System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User"))

# Enable long paths in windows - may avoid npm issue https://github.com/coreybutler/nvm-windows/issues/302
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SYSTEM\ControlSet001\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1 -PropertyType DWORD -Force | Out-Null

nvm install 9.11.2
nvm use 9.11.2

Не знаю, что вам сказать .... Я могу установить semver с той же настройкой.

image

Я думаю, что запуск "npm install" решит проблему, как и со мной;)

Я считаю, что @momochanmo только что забыл установить пакет semver в свой проект. То же сообщение об ошибке, но это совершенно другая проблема.

Напомним: этот поток посвящен тому факту, что nvm устанавливает поврежденную версию npm с отсутствующей / поврежденной версией пакета semver, что делает его неработоспособным.

Наиболее вероятная основная причина, предложенная до сих пор, заключается в том, что ошибка / изменение поведения, внесенная в компилятор Go около 3 лет назад, вызывает ошибку, которая незаметно проглатывается во время установки. См. Https://github.com/coreybutler/nvm-windows/pull/370.

Так что, если вы знаете кого-то, кто работает с Windows и увлечен Go, сейчас самое время похлопать его по плечу и предложить отличную возможность карьерного роста 😅

Я выполнил эти шаги, и моя проблема была решена.

  1. удалить Node.js
  2. Удалите содержимое следующих папок
    C: \ Пользователи\ AppData \ Roamingnpm-cache
    C: \ Пользователи\ AppData \ Roamingnpm
    C: \ Program Files \ nodejs
  3. Затем снова установите Node _ https://nodejs.org/en/_

После этого у меня сработало. Вы спасатель !!!!! спасибо <3

Была ли эта страница полезной?
0 / 5 - 0 рейтинги