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

197

Я не могу использовать 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)
user2447562
источник
4
У меня была такая же проблема Или же вы можете использовать пряжу вместо npm
Войцех Maślanka
1
Вы используете пряжу для установки package.json?
Анандхаршан
1
Просто переустановите npm
Nuno Ferro
Разное, но, возможно, связано: /programming/53545800#62740853 - Полезно?
Хенке

Ответы:

405

У меня была такая же ошибка. 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

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

artiebits
источник
3
Использовал это на двух разных машинах под управлением El Capitan, работал в обоих случаях.
Камикадзе Рашер
7
Используйте brew uninstall --force nodeдля удаления всех версий
удалите
5
просто установите npm снова. curl -0 -L https://npmjs.org/install.sh | sudo shпосле удаления папки npm
Барион Ли
17
Если Пряжа уже установлена, brew uninstall --ignore-dependencies nodeу меня работает, где brew uninstall --force nodeне сделал.
Максим Лафари
13
Это моя вина за слепое вставление команд, но sudo rm -rf /usr/local/lib/node_modulesя потерял глобальные модули, которые я использую, такие как gulp и selenium server.
Надоело
84

Я сталкиваюсь с той же проблемой здесь.

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

Ашур
источник
2
Это решение отлично сработало для меня и намного проще, чем альтернативы здесь. Я думаю, что пряжа может испортить npm, если во время обновления / установки программа получает ошибку прав доступа / прав доступа.
Slbox
53

В MS Windows решение состоит в том, чтобы удалить %APPDATA%\npmи переустановитьnode

Gangadhar
источник
Я хотел бы удвоить этот голос для Windows. Есть одна ошибка: каталог AppData по умолчанию скрыт, поэтому я не думаю, что он был фактически установлен в этом месте.
Ринго
7
На окнах просто ремонт не нужно переустанавливать
MotKohn
2
@MotKohn отремонтировать что? Нога? кости? автомобиль? «ремонтировать» что ?!
Самайо
2
@samayo В Windows, где вы устанавливаете, есть опция восстановления. Извините, это был контекстный комментарий.
MotKohn
2
Этот подход работал и для меня на моем 64-битном ноутбуке с Windows 8.1 Enterprise. Мне пришлось удалить как папки «npm», так и папки «npm-cache», а затем удалить и установить новый узел.
Эдди
46

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

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

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

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

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

raffjones
источник
npm installсделал это для меня. Я устанавливал все зависимости один за другим, но npm installсделал их все сразу. Спасибо.
tazboy
3
У меня также было такое после меняbrew install yarn
Уолтер Мартин Варгас-Пена
1
Помогла простая переустановка node.js из официального установщика osx. Спасибо!
Roman
это случилось со мной и после brew install yarn!! какого черта, пряжа
movac
23

В Arch Linux то, что помогло мне, было:

sudo pacman -Rs npm
sudo pacman -S npm
Тельмо Трупер
источник
1
Мне пришлось использовать, sudo pacman -Rddчтобы удалить игнорирование зависимостей, но это не решило проблему для меня. Установка semver из пакетов arch в ответ Матиаса Брауна сделала.
Пьер-Алексис Чавалдини
15

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

pacman -S semver
Матиас Браун
источник
8

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

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

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

Шубхам Джайсвал
источник
Вот и все. Я удалил узел. Затем удалил как npmи npm_cacheиз /Appdata/Roaming. Затем снова установил узел. Кажется, кэш там виноват.
Саулюс
7

В моем случае на 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

zeeawan
источник
5

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

yarn global add npm
the_haystacker
источник
4

В Windows загрузка MSI Node снова и выполнение 'Repair' работали для меня.

Sornakumar
источник
2

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

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

Wireblue
источник
2

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

Для устранения удалил node_modules и перезапустил npm install. Тогда gulpпобежал нормально.

Седрик
источник
1

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

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

Вы также можете проверить эту проблему на GitHub. Чтобы быть более точным в отношении unisistal, попробуйте выполнить следующее :

Удаление

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

Судо 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 get userconfig # по умолчанию ~ / .npmrc Конфигурация npm get globalconfig # по умолчанию / usr / local / etc / npmrc Удаление npm по умолчанию не удаляет файлы конфигурации. Вы должны удалить их самостоятельно, если хотите, чтобы они исчезли. Обратите внимание, что это означает, что будущие установки npm не будут помнить выбранные вами настройки.

Rodmentou
источник
Обновил мой ответ. Попробуй это сейчас. Если это не работает, протестируйте что-нибудь для меня. Скопируйте package.json в другую папку и попробуйте использовать npm install.
Rodmentou
1
Можете ли вы вставить свой package.json, пожалуйста?
Rodmentou
{"name": "workspace", "version": "0.0.0", "private": true, "scripts": {"start": "node ./bin/www"}, "dependencies": {" body-parser ":" ~ 1.13.2 "," bson ":" ^ 0.2.22 "," cookie-parser ":" ~ 1.3.5 "," debug ":" ~ 2.2.0 "," express " : "~ 4.13.1", "hbs": "~ 3.1.0", "monk": "^ 1.0.1", "morgan": "~ 1.6.1", "serve-favicon": "~ 2.3 .0 "}," engine ": {" node ":" 4.2.2 "}}
user2447562
Вы пытались запустить npm install с вашим package.json в другой папке?
Родменту
мне нужно удалить в node.js, после установки node.js .... мне нужно создать пример приложения, используя mean.that, мне нужно установить команду npm intall, но я получаю ту же ошибку ... пожалуйста, дайте какое-то решение меня....
user2447562
1

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

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

Windhover
источник
0

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

jack4it
источник
0

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

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

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

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

Larest
источник
0

Для пользователей Mac я попытался установить кучу новых версий узлов и удалить разные. Это не исправило это. Вы должны полностью стереть все ваши установки в первую очередь. Следуйте этим инструкциям ... Как полностью удалить Node.js и переустановить с самого начала (Mac OS X) .

Затем загрузите последнюю версию узла.

Майкл
источник
0

У меня была такая же проблема при установке на 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. Затем добавил этот путь в мой путь.

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

После этого я смог сделать это npm installбез проблем.

Jerinaw
источник
0

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

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

Сэчин
источник
0

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

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

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

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

Так что, либо обновление gulp с помощью глобального флага -g поможет, либо я следую этому ниже

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

myDoggyWritesCode
источник
0

Как отметил аноним (?) На DeveloperReference.com, приведенные ниже шаги решили «не найти модуль 'semver'» для меня при запуске npm -install:

* "Я выполнил эти шаги, и это решило мою проблему, удалите Node.js

  1. Удалить содержимое следующих папок
    • C: \ Users \ {username} \ AppData \ Roaming \ npm-cache
    • C: \ Users \ {username \ \ AppData \ Roaming \ npm
  2. C: \ Program Files \ nodejs Затем снова установите Node from https://nodejs.org/en/ "*

https://html.developreference.com/article/12253101/Cannot+find+module+%27semver%27+When+installing+Npm

Mosca Pt
источник
-1

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

Если это так, вам нужно установить semverвручную черезnpm install -g semver

Mr94
источник
-2

Я столкнулся с той же проблемой и исправил ее, обновив версию Node

Тим
источник