Instalator Npm nie może znaleźć modułu „semver”


196

Nie mogę korzystać npm installz wiersza polecenia w NodeJS. Podczas uruchamiania pojawiają się następujące błędy 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)

4
Miałem ten sam problem Alternatywnie można użyć przędzy zamiast npm
Wojciech Maślanka

1
Czy używasz przędzy do zainstalowania pliku package.json?
anandharshan

1
Wystarczy ponownie zainstalować npm
Nuno Ferro

Różne, ale prawdopodobnie powiązane: /programming/53545800#62740853 - Pomocne?
Henke

Odpowiedzi:


402

Miałem ten sam błąd. npm uninstall npm -g, rm -rf node_modulesnie pomogło mi, bo kiedy próbowałem, dostawałem Error: Cannot find module 'semver'. Ale rozwiązuję mój problem, wykonując następujące kroki (spowoduje to usunięcie innych globalnych modułów, których możesz używać):

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

Mam nadzieję, że pomoże to tym, którzy mają podobny problem.


3
Użyłem tego na dwóch różnych maszynach z uruchomionym El Capitan, pracował w obu przypadkach.
Kamikaze Rusher

7
Użyj, brew uninstall --force nodeaby usunąć wszystkie wersje
deleze

5
po prostu zainstaluj ponownie npm. curl -0 -L https://npmjs.org/install.sh | sudo shpo usunięciu folderu npm
Baryon Lee

17
Jeśli Przędza jest już zainstalowana, brew uninstall --ignore-dependencies nodedziała dla mnie tam, gdzie jej brew uninstall --force nodenie ma.
Maxime Lafarie

13
To moja wina ślepego wklejania poleceń, ale sudo rm -rf /usr/local/lib/node_modulesspowodowała utratę globalnych modułów, których używam, takich jak serwer gulp i selen. Bądźcie zmęczeni tym
AmmarCSE,

84

Mam tutaj ten sam problem.

Jeśli tak się stanie zaraz po uruchomieniu, brew install yarnspróbuj uruchomić yarn global add npmi voilà - naprawione!


2
To rozwiązanie działało dla mnie świetnie i jest nieskończenie prostsze niż alternatywy tutaj. Myślę, że przędza może zmienić npm, jeśli instalacja otrzyma błąd uprawnień / dostępu podczas aktualizacji / instalacji.
Slbox

53

W MS Windows rozwiązaniem jest usunięcie %APPDATA%\npmi ponowna instalacjanode


Chciałbym podwoić ten głos w systemie Windows. Jest gotcha: katalog AppData był domyślnie ukryty, więc nie sądziłem, że został faktycznie zainstalowany w tej lokalizacji.
Ringo,

7
W
systemie

2
@MotKohn Napraw co? Noga? kość? samochód? „napraw” co ?!
samayo,

2
@samayo W systemie Windows, w którym instalujesz, dostępna jest opcja naprawy. Przepraszam, to był komentarz kontekstowy.
MotKohn,

2
To podejście zadziałało również na moim 64-bitowym laptopie z systemem Windows 8.1 Enterprise. Musiałem usunąć zarówno foldery „npm”, jak i „npm-cache”, a następnie odinstalować i zainstalować nowy węzeł.
Eddie,

46

Też miałem to po brew install yarnwczorajszym biegu . Przynajmniej do tego czasu wszystko było w porządku.

Uruchomiłem rm -rf node_modulesi próbowałem ponownie zainstalować, ale żadne npmpolecenie nie działało.

W końcu podjąłem dość prosty krok, aby ponownie zainstalować Node za pośrednictwem oficjalnego instalatora Node dla Mac OS X.

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

Wszystko jest teraz w porządku. Właśnie wróciłem do katalogu, uruchomiłem npm installi załatwiłem sprawę.


npm installzrobił to dla mnie. Instalowałem wszystkie zależności jeden po drugim, ale npm installzrobiłem je wszystkie naraz. Dzięki.
tazboy

3
Zdarzyło mi się to również pobrew install yarn
Walter Martin Vargas-Pena,

1
pomogła prosta ponowna instalacja node.js z oficjalnego instalatora osx. dzięki!
Rzymian

to też mi się przydarzyło brew install yarn!! co do cholery, przędza
movac

23

W Arch Linuxie udało mi się:

sudo pacman -Rs npm
sudo pacman -S npm

1
Musiałem użyć sudo pacman -Rdddo usunięcia ignorowania zależności, ale nie rozwiązało to dla mnie problemu. Zainstalował semver z pakietów arch w odpowiedzi Mathiasa Brauna.
Pierre-Alexis Ciavaldini

15

Właśnie zetknąwszy się z tym w Arch Linux 4.13.3, rozwiązałem problem, po prostu ponownie instalując semver:

pacman -S semver

8

W rzeczywistości bierze odniesienie do wcześniej przechowywanych modułów.

Rozwiązanie: Usuń folder npm-cache / npm z katalogu instalacyjnego nodejs. W systemie Windows jest w C: / Użytkownik / Nazwa użytkownika / Appdata / Roaming / npm (lub npm_cache). i spróbuj zainstalować ponownie.

Ta sama rzecz do zrobienia w dowolnym systemie operacyjnym.


Otóż ​​to. Odinstalowałem węzeł. Następnie usunąłem zarówno npmi npm_cachez /Appdata/Roaming. Następnie ponownie zainstaluj węzeł. Wygląda na to, że jest tam pamięć podręczna.
Saulius

7

W moim przypadku na macOS (10.13.6), kiedy wykonałem następujące polecenie

npm install -g react-native-cli

Mam ten błąd

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)

Błąd został rozwiązany po wykonaniu polecenia

yarn global add npm

zaproponowane przez @Ashoor


5

Dla mnie stało się to po zainstalowaniu globalnej przędzy. Aby rozwiązać ten problem, zainstaluj npm za pomocą przędzy i gotowe.

yarn global add npm


2

Miałem ten sam problem, ale spowodował go uszkodzony package-lock.jsonplik.

Usunięcie package-lock.jsoni ponowne uruchomienie npm installnaprawiło to dla mnie.


2

Napotkałem ten problem, gdy npm installkorzystałem z niższej wersji węzła. Później, kiedy zaktualizowałem do najnowszej wersji węzła i uruchomiłem gulp, pokazał ten błąd.

Aby rozwiązać, usuń moduły node_moduł i uruchom ponownie npm install. Potem gulpbiegł dobrze.


1

Po prostu usuń folder / node_modules i spróbuj ponownie. ;)

Możesz go użyć npm rmdo usunięcia.

Możesz również sprawdzić ten problem na GitHub. Aby dokładniej określić unnistal, spróbuj wykonać następujące czynności :

Odinstalowywanie

Tak miło cię widzieć.

sudo npm uninstall npm -gLub, jeśli to się nie powiedzie,

sudo make uninstall Więcej poważnych deinstalacji

Zazwyczaj powyższe instrukcje są wystarczające. Spowoduje to usunięcie npm, ale pozostawi wszystko, co zainstalowałeś.

Jeśli chcesz usunąć wszystkie zainstalowane pakiety, możesz użyć polecenia npm ls, aby je znaleźć, a następnie npm rm, aby je usunąć.

Aby usunąć cruft pozostawiony przez npm 0.x, możesz użyć dołączonego pliku skryptu clean-old.sh. Możesz go wygodnie uruchomić w następujący sposób:

npm explore npm -g - sh scripts / clean-old.sh npm używa dwóch plików konfiguracyjnych, jednego dla konfiguracji dla poszczególnych użytkowników i drugiego dla konfiguracji globalnych (dla każdego użytkownika). Możesz je wyświetlić, wykonując:

npm config get userconfig # defaults to ~ / .npmrc npm config get globalconfig # defaults to / usr / local / etc / npmrc Deinstalacja npm nie usuwa domyślnie plików konfiguracyjnych. Musisz je usunąć samodzielnie, jeśli chcesz, żeby zniknęły. Zauważ, że oznacza to, że przyszłe instalacje npm nie zapamiętają wybranych ustawień.


Zaktualizowałem moją odpowiedź. Spróbuj teraz. Jeśli to nie działa, przetestuj coś dla mnie. Skopiuj plik package.json do innego folderu i spróbuj użyć instalacji npm.
Rodmentou

1
Czy możesz wkleić plik 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”, „serv-favicon”: „~ 2.3 .0 „},„ silniki ”: {„ węzeł ”:„ 4.2.2 ”}}
user2447562,

Czy próbowałeś uruchomić npm install z plikiem package.json w innym folderze?
Rodmentou

muszę odinstalować do node.js, po instalacji node.js .... muszę utworzyć sampleapplication za pomocą średniej. tym razem muszę zainstalować polecenie npm intall, ale otrzymuję ten sam błąd ... proszę podać rozwiązanie ja ....
user2447562,

1

W końcu to rozgryzłem! Tak, musisz odinstalować / usunąć wszystkie pliki i ponownie zainstalować. ALE NIEKTÓRE ŚCIEŻKI PLIKÓW SĄ ZBYT DŁUGIE, ABY USUNĄĆ PODCZAS PROCESU ODINSTALOWANIA. Ścieżki do plików są tak długie w węźle, że ich usunięcie może być niemożliwe. Musisz zmienić nazwy ścieżek plików.

Po odinstalowaniu węzła użyj wiersza polecenia, przejdź do ... \ Appdata \ roaming \ (użyj ścieżki z komunikatu o błędzie). Spróbuj usunąć folder za pomocą del npm. Następnie, jeśli nie pozwala ci to usunąć folderu, zacznij zmieniać nazwy folderów na ścieżce pliku w następnym komunikacie o błędzie na „a” lub coś krótkiego. Być może trzeba to zrobić dla wielu folderów na ścieżce. Powinieneś być w stanie usunąć! Następnie zainstaluj ponownie węzeł i powinien on działać.



0

W moim przypadku po prostu ponowne uruchomienie brew install yarnrozwiązało problem.


0

Te same problemy napotkałem po tym, jak napar instaluje przędzę na moich MacOs Sierra 10.12.6. (A pierwsza próba instalacji spada po tym, jak aktualizacja aktualizacji naparu pojawia się z komunikatem „Homebrew musi być uruchomiony pod Ruby 2.3! Używasz 2.0.0. (RuntimeError)”. Więc ponownie go uruchamiam.)

Więc używam n managera, aby ponownie zainstalować npm.

  • przejdź do innej wersji węzła (w moim przypadku do wersji 8.0) poleceniem „n” z pustymi parametrami
  • lub zainstaluj nowy przez „n xxx” gdzie xxx numer wersji węzła (potrzebuję 6.9.1)
  • usuń wersję roboczą przez „n rm xxx” gdzie xxx numer wersji węzła. w razie potrzeby użyj sudo
  • zainstaluj działającą wersję, wpisując „n xxx”, gdzie xxx to numer wersji węzła. w razie potrzeby użyj sudo
  • przełącz na działającą wersję węzła. (patrz pierwszy krok w celach informacyjnych)

Myślę, że problem może być spowodowany tym, że węzeł został zainstalowany pod sudo.



0

Miałem ten sam problem z instalacją w AWS Linux. Musiałem go zainstalować sudo. Aby obejść ten problem, wykonałem krok 3 z tego artykułu (upewniając się, że otrzymałem najnowszą wersję węzła)

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

Ale zainstalowałem go w katalogu osobistym użytkownika /home/aUser/node. Następnie dodałem tę ścieżkę do mojej ŚCIEŻKI.

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

Po tym mogłem zrobić npm installbez problemów.


0

Napotkałem te problemy podczas uruchamiania projektu na wyższej wersji cli. Aby rozwiązać ten problem, możesz po prostu skomentować moduł @ angular-devkit / build-angular i ponownie musisz go ponownie zainstalować za pośrednictwem

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


0

Tylko upewnij się, że semverjest zainstalowany:npm install -g semver


1
npm nie działa, więc nie można zainstalować semver przez npm. Najlepszym rozwiązaniem jest użycie przędzy do zainstalowania npm lub brakujących pakietów
NFpeter

@NFpeter Miałem dokładnie taki sam problem, jak podano w pytaniu i naprawiłem go w ten sposób, więc npm zadziałało (przynajmniej w moim przypadku).
Javarome,

0

Dla mnie stało się to podczas aktualizacji do gulp 4 z gulp 3 w moim projekcie. Tak więc, kiedy uruchomiłem polecenie „gulp watch”, rzucał mi ten sam błąd.

Jest to prawdopodobnie spowodowane niedopasowaniem wersji w porównaniu z moim globalnie zainstalowanym łykiem.

Tak więc albo ulepszenie gulpa flagą globalną „-g” pomogłoby, albo zastosowałem się do tego poniżej

Jednak w moim projekcie użyłem „./node_modules/.bin/gulp watch”. Zapewnia to, że wszystkie zależności, których potrzebuje łyk, są pobierane tylko z modułów_węzła.


0

Jak zauważył anonimowy (?) Z DeveloperReference.com, poniższe kroki rozwiązały problem „nie mogę znaleźć modułu 'semver” dla mnie podczas uruchamiania npm -install:

* „Wykonałem te kroki i rozwiązałem mój problem odinstaluj Node.js

  1. Usuń zawartość następujących folderów
    • C: \ Users \ {nazwa użytkownika} \ AppData \ Roaming \ npm-cache
    • C: \ Users \ {nazwa użytkownika \ \ AppData \ Roaming \ npm
  2. C: \ Program Files \ nodejs Następnie ponownie zainstaluj Node z https://nodejs.org/en/ "*

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


-1

Po prostu sprawdź skrypty preinstalacyjne, jeśli je masz. Czasami, aby ograniczyć wersje nodei npmtrzeba uruchomić projekt.

W takim przypadku musisz zainstalować semverręcznie za pośrednictwemnpm install -g semver


-2

Natknąłem się na ten sam problem i naprawiłem go poprzez aktualizację mojej wersji Węzła

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.