Установка npm не может найти модуль 'semver'

Я не могу использовать npm install из командной строки в NodeJS. Я получаю эти ошибки при запуске npm install:

module.js:339
    throw err;
    ^
Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (C:\Users\admin\AppData\Roaming\npm\node_modules\npm\l
ib\config\defaults.js:6:14)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)

person user2447562    schedule 23.11.2015    source источник
comment
У меня была такая же проблема. В качестве альтернативы вы можете использовать пряжу вместо npm.   -  person Wojciech Maślanka    schedule 05.12.2016
comment
Вы используете пряжу для установки package.json?   -  person anandharshan    schedule 15.03.2017
comment
Просто переустановите npm   -  person Nuno Ferro    schedule 21.02.2018
comment
Разные, но, возможно, связанные: https://stackoverflow.com/questions/53545800#62740853 - полезно?   -  person Henke    schedule 06.07.2020
comment
Я столкнулся с этой проблемой, когда обновил узел в моем ubuntu и закрыл терминал. Но я забыл закрыть и снова открыть Visual Studio. После повторного открытия проблема исчезла. :)   -  person sangam    schedule 15.07.2021


Ответы (32)


У меня была такая же ошибка. npm uninstall npm -g, rm -rf node_modules мне не помогли, потому что когда я пытался, у меня получалось Error: Cannot find module 'semver'. Но я решаю свою проблему с помощью следующих шагов (это приведет к удалению других глобальных модулей, которые вы можете использовать):

  • sudo rm -rf /usr/local/lib/node_modules
  • sudo rm -rf ~/.npm
  • brew uninstall --force node
  • brew install node

Надеюсь, это поможет тем, у кого такая же проблема.

person artiebits    schedule 24.02.2016
comment
Использовал это на двух разных машинах под управлением El Capitan, работал в обоих случаях. - person Kamikaze Rusher; 10.03.2016
comment
Используйте brew uninstall --force node, чтобы удалить все версии - person deleze; 20.01.2017
comment
Чертовски полезно! Спасибо, Арчи! - person Matt Komarnicki; 14.02.2017
comment
Я не использовал brew uninstall --force node с первого раза, он сломает node и npm. Похоже, если у вас установлен узел с несколькими версиями, действительно нужен --force - person Rob L; 21.02.2017
comment
просто установите npm снова. curl -0 -L https://npmjs.org/install.sh | sudo sh после удаления папки npm - person Baryon Lee; 14.03.2017
comment
Это также устранило мою проблему в Mac OS Sierra. - person WBuck; 23.03.2017
comment
Я пробовал это решение, но в моем случае оно не исправлено. Я исправил решение, показанное здесь - person Hudson Santos; 31.03.2017
comment
Хуже всего то, что каждый раз, когда я хочу обновить узел, мне приходится проходить через этот процесс полного удаления узла и последующего добавления его обратно. Становится глупо - person Electric Coffee; 03.04.2017
comment
Это сработало для меня после обновления до Node v8.0.0 / npm v5.0.x - person Daniel Schaffer; 05.06.2017
comment
Если Yarn уже установлен, brew uninstall --ignore-dependencies node у меня работает, а brew uninstall --force node - нет. - person Maxime Lafarie; 21.06.2017
comment
brew uninstall --ignore-dependencies --force node на Sierra 10.12.5 у меня работает - person MFrazier; 06.07.2017
comment
Это сработало для меня. Спасибо! Кто-нибудь знает, почему вообще возникла эта ошибка? Что-нибудь о версии node / npm? Однажды я проснулся и не мог npm run serve, как обычно ... Я вообще ничего не знаю, что могло бы вызвать это изменение. В любом случае, рад снова быть на ногах и снова работать npm. - person Leo Brown; 25.07.2017
comment
Я виноват в слепой вставке команд, но sudo rm -rf /usr/local/lib/node_modules заставил меня потерять глобальные модули, которые я использую, такие как gulp и selenium server. Будь от этого утомлен - person AmmarCSE; 18.08.2017
comment
Да, просто имейте в виду, что при этом удаляются все глобальные модули, такие как Ionic или Gulp. Придется их переустановить с npm i (module) -g - person Grant; 30.10.2017
comment
Работает отлично! Я рекомендую использовать nvm вместо brew. - person Dev; 18.06.2018
comment
Мне не нужно было удалять все мои глобальные модули. Следуя приведенным выше инструкциям, я заменил этот sudo rm -rf / usr / local / lib / node_modules на этот sudo rm -rf / usr / local / lib / node_modules / node. В основном я просто добавил / node, и это волшебным образом сработало для меня. Опять же, вы все равно должны следовать приведенным выше инструкциям :) Кстати, спасибо @artiebits за решение! :) - person balfonso; 14.09.2018
comment
Сэкономьте себе 10 минут - сначала попробуйте этот ответ: stackoverflow.com/a/49422151/524537 - person Bojan Radivojevic Bomber; 31.10.2018
comment
Win10: удаление node_modules приложения и package-lock.json, затем установка npm - для меня проблема решена. - person PokatilovArt; 12.08.2020
comment
@BojanRadivojevicBomber Я видел ваш комментарий ранее, вышеупомянутое решение не сработало или, по крайней мере, застряло при make install, и теперь мне нужно переустановить каждый пакет :( - person Zeyad Shaban; 29.11.2020
comment
У меня была аналогичная проблема, но с командой ui5, установленной через npm. Я думаю, что у меня были проблемы с версией, но очистка всего npm, похоже, устранила это. Спасибо! (для справки, я пытался использовать пакет @ ui5 / cli) - person Catalin Pirvu; 23.04.2021

У меня здесь та же проблема.

Если это происходит сразу после запуска brew install yarn, попробуйте запустить yarn global add npm и вуаля - исправлено!

person Ashoor    schedule 22.03.2018
comment
Это решение отлично сработало для меня и бесконечно проще, чем приведенные здесь альтернативы. Я думаю, что yarn может испортить npm, если при установке возникает ошибка разрешений / доступа во время обновления / установки. - person Slbox; 30.08.2019

В MS Windows решением является удаление %APPDATA%\npm и повторная установка node.

person Gangadhar    schedule 06.12.2016
comment
Хотел бы я удвоить этот голос за Windows. Есть одна проблема: каталог AppData был скрыт по умолчанию, поэтому я не думал, что он действительно установлен в этом месте. - person Ringo; 06.12.2016
comment
На windows просто ремонт не нужно переустанавливать - person MotKohn; 19.05.2017
comment
@MotKohn Что ремонтировать? Нога? кости? машина? ремонтировать что ?! - person samayo; 11.09.2017
comment
@samayo В Windows, в которую вы устанавливаете, есть возможность восстановления. Извините, это был контекстный комментарий. - person MotKohn; 11.09.2017
comment
Этот подход работал и у меня на моем ноутбуке с 64-битной Windows 8.1 Enterprise. Мне пришлось удалить как папки npm, так и папки npm-cache с последующим удалением и установкой нового узла. - person Eddie; 07.11.2017
comment
Пожалуйста, может ли кто-нибудь предоставить полное краткое и исчерпывающее руководство о том, как этого добиться в Microsoft Windows? - person Steve K; 05.07.2021

У меня тоже было это после того, как я вчера запустил brew install yarn. По крайней мере, до этого все было хорошо.

Я запустил rm -rf node_modules и попытался переустановить, но команда npm не работала.

В конце концов, я сделал довольно простой шаг, переустановив Node через официальный установщик Node для Mac OS X.

https://nodejs.org/en/download/

Теперь все хорошо. Просто вернулся в каталог, запустил npm install, и дело в шляпе.

person codewithfeeling    schedule 20.03.2017
comment
npm install сделал это за меня. Я устанавливал все зависимости одну за другой, но npm install сделал их все сразу. Спасибо. - person tazboy; 31.03.2017
comment
Мне тоже приходило в голову это после brew install yarn - person Walter Martin Vargas-Pena; 25.09.2017
comment
Помогла простая переустановка node.js из официального установщика osx. Благодарность! - person Roman; 18.02.2019
comment
это случилось со мной и после brew install yarn !! что, черт возьми, пряжа - person movac; 08.01.2020

Что помогло мне в Arch Linux:

sudo pacman -Rs npm
sudo pacman -S npm
person Telmo Trooper    schedule 30.09.2017
comment
Мне пришлось использовать sudo pacman -Rdd, чтобы убрать игнорирование зависимостей, но это не решило проблему для меня. Установка semver из пакетов Arch в ответе Матиаса Брауна сделала. - person Pierre-Alexis Ciavaldini; 17.04.2018

Только что столкнувшись с этим в Arch Linux 4.13.3, я решил проблему, просто переустановив semver:

pacman -S semver
person Matthias Braun    schedule 29.09.2017

В Ubuntu, если вы предпочитаете управлять Node через репозитории по умолчанию, используя apt, лучше всего таким образом установить и nodejs, и npm.

Очень вероятно, что используемая вами версия npm ожидает semver в определенном месте, которое не соответствует установленной вами версии Node JS. Если существует только одна версия nodejs и только одна версия npm, и обе они установлены с использованием репозиториев по умолчанию, это должно работать идеально.

Вот мой лучший совет по работе Node и npm с использованием основных репозиториев Ubuntu:

  1. sudo apt-get purge nodejs --auto-remove и sudo apt-get purge npm --auto-remove
  2. whereis node: удалить все версии узла по одной. Повторяйте, пока эта команда не вернет пробел после node:.
  3. sudo apt-get install nodejs
  4. node --version: должен вернуть ... no such file or directory
  5. nodejs --version: должен вернуть v1x.x.x. Это версия, установленная apt. Вероятно, он будет менее свежим, чем последняя версия, доступная на веб-сайте Node JS.
  6. sudo apt-get install npm
  7. npm --version: он будет использовать nodejs, установленный apt, и будет работать правильно.
person Schmudde    schedule 28.08.2020
comment
Я обнаружил, что этот ответ полезен для Ubuntu 20.x.x в aws .... - person Shurvir Mori; 30.11.2020
comment
Шаг номер 1 сделал свое дело, круто. Ubuntu 20.04 - person yehanny; 04.02.2021
comment
возникла проблема на шаге №3 в ubuntu 20.10 - как только я выполняю шаг 2, узел начинает существовать - person ligi; 20.04.2021
comment
Этот ответ мне очень помог. Для всех, кто использует виртуальные машины с Ubuntu 20.04, я успешно установил последний узел (v 16), установленный с npm (v 7), с помощью nvm. docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/ - person ali; 08.07.2021

если вы находитесь на сервере Linux, выйдите с сервера и повторно выполните ssh

person Supun Madushanka    schedule 07.08.2020
comment
хех - я подумал, что это глупое предложение, но мне нечего терять, я запустил новую оболочку, и она работала, как рекламировалось. Благодарность! - person keithpjolley; 21.11.2020

Фактически, это ссылка на ранее сохраненные модули.

Решение: удалите папку npm-cache / npm в каталоге установки nodejs. В Windows он находится в C: / User / Username / Appdata / Roaming / npm (или npm_cache). и попробуйте установить еще раз.

То же самое можно сделать в любой ОС.

person Shubham Jaiswal    schedule 01.10.2017
comment
Вот и все. Я удалил узел. Затем удалил и npm, и npm_cache из /Appdata/Roaming. Затем снова установил узел. Кажется, там виноват кеш. - person Saulius; 23.12.2019

В моем случае на macOS (10.13.6), когда я выполнил следующую команду

npm install -g react-native-cli

Я получил эту ошибку

Error: Cannot find module 'semver'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:690:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/unsupported.js:2:14)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)

Ошибка устранена после выполнения команды

yarn global add npm

предложено @Ashoor

person zeeawan    schedule 19.08.2019

В Windows у меня сработало повторное скачивание MSI узла и выполнение «ремонта».

person Sornakumar    schedule 14.06.2017

Для меня это произошло после того, как я установил пряжу по всему миру. Чтобы решить эту проблему, установите npm с помощью yarn и готово.

yarn global add npm
person the_haystacker    schedule 09.02.2020

У меня была такая же проблема, но она была вызвана повреждением файла package-lock.json.

Удаление package-lock.json и повторный запуск npm install исправили это для меня.

person Wireblue    schedule 14.07.2017

Просто убедитесь, что semver установлен: npm install -g semver

person Javarome    schedule 10.04.2019
comment
npm не работает, поэтому вы не можете установить semver через npm. Лучшее решение - использовать пряжу для установки npm или отсутствующих пакетов. - person NFpeter; 07.05.2019
comment
@NFpeter У меня была точно такая же проблема, как указано в вопросе, и я исправил ее таким образом, поэтому npm действительно работал (по крайней мере, в моем случае). - person Javarome; 08.05.2019

Просто удалите node js и переустановите его с помощью nvm. Ваша проблема будет решена. Я пользователь debian 10.

mahedi @ debain: ~ $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | трепать

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

mahedi @ debain: ~ $ nvm install v14.15.5

теперь проверьте, набрав node -v

person Mahedi Hasan Durjoy    schedule 11.03.2021
comment
работает, спасибо !! ты спас меня от многих разочарований - person Francesco Orsi; 14.05.2021

Столкнулся с этой проблемой, когда запустил npm install, используя более раннюю версию node. Позже, когда я обновился до последней версии узла и запустил gulp, он показал эту ошибку.

Чтобы решить эту проблему, удалил node_modules и повторно запустил npm install. Потом gulp нормально работало.

person cedric    schedule 26.02.2018

Это сработало для меня на Ubuntu (последняя версия от октября 2020 г.)

Сначала мне нужно было получить код из источника bash:

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

Это последняя версия узла, которая обновила мои библиотеки и избавилась от ошибки «semver».

person Snowcat    schedule 02.10.2020

У меня такая же ошибка, и я ее решил.

удалите файл package-lock.json и папку node_modules, затем npm install

person Justin J    schedule 04.02.2021

Просто удалите папку / node_modules и попробуйте еще раз. ;)

Вы можете использовать npm rm, чтобы удалить его.

Вы также можете проверить эту проблему на GitHub. Чтобы быть более конкретным в отношении unnistal, попробуйте выполнить это:

Удаление

Так грустно видеть, как ты уходишь.

sudo npm uninstall npm -g Или, если это не удается,

sudo make uninstall Более серьезное удаление

Обычно приведенных выше инструкций достаточно. Это удалит npm, но оставит все, что вы установили.

Если вы хотите удалить все установленные вами пакеты, вы можете использовать команду npm ls, чтобы найти их, а затем npm rm, чтобы удалить их.

Чтобы удалить мусор, оставленный npm 0.x, вы можете использовать прилагаемый файл сценария clean-old.sh. Вы можете запустить его так:

npm explore npm -g - sh scripts / clean-old.sh npm использует два файла конфигурации, один для конфигураций для каждого пользователя, а другой для глобальных (для каждого пользователя) конфигураций. Вы можете просмотреть их, выполнив:

npm config get userconfig # по умолчанию ~ / .npmrc npm config get globalconfig # по умолчанию / usr / local / etc / npmrc По умолчанию при удалении npm файлы конфигурации не удаляются. Вы должны удалить их вручную, если хотите, чтобы они исчезли. Обратите внимание: это означает, что будущие установки npm не запомнят выбранные вами настройки.

person Rodmentou    schedule 23.11.2015
comment
Обновил свой ответ. Попробуй это сейчас. Если не работает, протестируйте что-нибудь для меня. Скопируйте package.json в другую папку и попробуйте использовать npm install. - person Rodmentou; 23.11.2015
comment
Не могли бы вы вставить свой package.json, пожалуйста? - person Rodmentou; 23.11.2015
comment
{name: workspace, версия: 0.0.0, private: true, скрипты: {start: node ./bin/www}, зависимости: {body-parser: ~ 1.13.2, bson: ^ 0.2.22, cookie-parser : ~ 1.3.5, отладка: ~ 2.2.0, экспресс: ~ 4.13.1, hbs: ~ 3.1.0, монах: ^ 1.0.1, morgan: ~ 1.6.1, serve-favicon: ~ 2.3.0} , двигатели: {node: 4.2.2}} - person user2447562; 23.11.2015
comment
Вы пробовали запустить npm install с вашим package.json в другой папке? - person Rodmentou; 23.11.2015
comment
мне нужно удалить на node.js после установки node.js .... мне нужно создать пример приложения, используя mean. на этот раз мне нужно установить команду npm intall, но я получаю ту же ошибку ... пожалуйста, дайте какое-то решение для меня.... - person user2447562; 24.11.2015

Я наконец понял это! Да, вам нужно удалить / удалить все файлы и переустановить. НО НЕКОТОРЫЕ ФАЙЛОВЫЕ ПУТИ СЛИШКОМ ДЛИННЫ ДЛЯ УДАЛЕНИЯ ВО ВРЕМЯ УДАЛЕНИЯ. Пути к файлам в Node настолько длинные, что их невозможно удалить. Вам нужно переименовать пути к файлам.

После удаления Node используйте командную строку, перейдите в ... \ Appdata \ roaming \ (используйте путь из сообщения об ошибке). Попробуй удалить папку с del npm. Затем, если это не позволяет вам удалить папку, начните переименовывать папки в пути к файлу в следующем сообщении об ошибке на «a» или что-то короткое. Возможно, вам придется сделать это для нескольких папок по пути. Тогда вы сможете удалить! Затем переустановите узел, и он должен работать.

person The Windhover    schedule 09.11.2017

Для Arch Linux

sudo pacman -Rsc -n nodejs
sudo pacman -Sy nodejs
sudo pacman -Sy npm

Найдено здесь: https://github.com/npm/npm/issues/15558

person Geoff Langenderfer    schedule 28.03.2021

В моем случае простой повторный запуск brew install yarn устранил проблему.

person jack4it    schedule 25.10.2017

Я столкнулся с такой же проблемой после того, как brew установил пряжу на мой MacOs Sierra 10.12.6. (И первая попытка установки падает после того, как brew update self выводится с сообщением «Homebrew должен быть запущен под Ruby 2.3! Вы используете 2.0.0. (RuntimeError)». Поэтому я перезапускаю его.)

Поэтому я использую n manager для переустановки npm.

  • переключиться на другую версию узла (в моем случае на 8.0) командой "n" с пустыми параметрами
  • или установите новый "n x.x.x", где x.x.x - номер версии узла (мне нужно 6.9.1)
  • удалите рабочую версию с помощью "n rm x.x.x", где x.x.x - номер версии узла. при необходимости используйте sudo
  • установить рабочую версию "n x.x.x", где x.x.x - номер версии узла. при необходимости используйте sudo
  • переключиться на рабочую версию узла. (см. первый шаг для справки)

Я думаю, что проблема может быть вызвана тем, что узел был установлен под sudo на всякий случай.

person Larest    schedule 02.11.2017

У меня была такая же проблема с установкой на AWS Linux. Пришлось установить с sudo. Чтобы обойти это, я выполнил шаг 3 из этой статьи (убедитесь, что у вас установлена ​​последняя версия узла).

https://www.hostingadvice.com/how-to/update-node-js-latest-version/

wget https://nodejs.org/dist/vx.x.x/node-vx.x.x-linux-x64.tar.xz
tar -C /home/aUser/node --strip-components 1 -xJf node-vx.x.x-linux.x64.tar.xz

Но установил его в домашний каталог пользователя /home/aUser/node. Затем добавил этот путь к моему PATH.

export PATH=/home/aUser/node/bin:$PATH

После этого я смог без проблем выполнить npm install.

person Jerinaw    schedule 27.01.2019

Я столкнулся с этой проблемой при запуске проекта на более поздней версии cli. Чтобы решить эту проблему, вы можете просто закомментировать модуль @ angular-devkit / build-angular, и снова вам придется переустановить его через

npm install @ angular-devkit / build-angular --save

person sachin    schedule 19.03.2019

Для меня это произошло при обновлении до gulp 4 с gulp 3 в моем проекте. Итак, когда я запускаю команду «gulp watch», она выдает мне ту же ошибку.

Вероятно, это связано с несоответствием версии моему глобально установленному gulp.

Итак, либо обновление gulp с глобальным флагом "-g" могло бы помочь, либо я следил за этим ниже

Однако в своем проекте я использовал "./node_modules/.bin/gulp watch". Это гарантирует, что все зависимости, необходимые для gulp, взяты только из node_modules.

person master_dodo    schedule 07.04.2020

Я получал сообщение об ошибке Permission Denied после выполнения любой команды ng (ng --version). Некоторое время я искал в Google и попытался очистить кеш npm npm cache verify, удалить мой глобальный angular cli (npm uninstall -g @angular/cli) и переустановить Angular / cli (npm install -g @angular/cli) и т. Д., Но это выдало бы сообщение об ошибке, указав, что он уже установлен. но в папке node_modules здесь не было никакой папки angular .. переустановил узел даже после того, как перезапустил мой компьютер.

ОТВЕТ: Наконец, я обнаружил, что файлы ng.cmd и ng.ps1 в C:\Users\JaGoodwin\AppData\Roaming\npm\ здесь все еще были (в папке npm) .. хотя я сделал npm uninstall -g @angular/cli. эти файлы заставляли ng (angular / cli) думать, что он все еще установлен. Я удалил эти файлы, затем npm install -g @angular/[email protected] (версия, которая мне нужна). Затем я удалил свои проекты node_modules, а затем запустил npm install и теперь могу запустить свой проект angular с помощью ng serve.

введите описание изображения здесь

C:\Users\JaGoodwin\AppData\Roaming\npm\

Найдите это, выполнив поиск по папке% APPDATA% в строке поиска Windows.

person Jaden Goodwin    schedule 29.10.2020

sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* ~/.npm
sudo rm -rf /usr/local/lib/node*
sudo rm -rf /usr/local/bin/node*
sudo rm -rf /usr/local/include/node*

sudo apt-get purge nodejs npm
sudo apt autoremove

Затем установите узел и npm

person Mohamed Farouk    schedule 03.12.2020

Начни заново.

brew uninstall --force node
brew install node
person Grant    schedule 12.01.2021

просто удалите свои node_modules

rm -rf node_modules

чем

yarn

or

npm install
person Rashid Iqbal    schedule 16.02.2021

Просто проверьте свои сценарии предварительной установки, если они у вас есть. Иногда для ограничения версий node и npm нужно запустить проект.

В этом случае вам необходимо установить semver вручную через npm install -g semver

person Mr94    schedule 02.08.2018

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

npm install semver
person mukesh    schedule 24.02.2021
comment
Решение Catch 22 .. запуск npm приводит к отсутствию модуля semver, поэтому вы не можете использовать NPM вообще, даже для установки semver :( - person aclowkay; 22.05.2021