Nie znaleziono npm-cli.js podczas uruchamiania npm

90

Zwykle mogę zainstalować bibliotekę używając npm ale dzisiaj podczas instalacji yeoman napotkałem ten błąd. Pomóż nam dowiedzieć się, jaka jest główna przyczyna.

D:\Works\phonegap\ionic\todo>npm install -g yo
    module.js:340
    throw err;
          ^
Error: Cannot find module 'C:\Program Files\nodejs\node_modules\npm\bin\node_modules\npm\bin\npm-cli.js'

at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3

Zajrzałem do folderu:

C: \ Program Files \ nodejs \ node_modules \ npm \ bin \

ale nie widzę folderu node_modules jako opisanego błędu.

Próbuję też znaleźć npm-cli.js i zobaczyć, że faktycznie jest wC:\Program Files\nodejs\node_modules\npm\bin\

user1192476
źródło
kiedy zainstalowałeś węzeł?
Mritunjay
1
Przepraszam, zapomniałem ponownie zainstalować węzeł, aby naprawić ten błąd, więc nie ma teraz folderu node_modules. Ale wcześniej sprawdziłem również C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ node_mod ules \ ale nie widziałem w nim folderu npm.
user1192476
Mam na to odpowiedź. Opublikuje po 8 godzinach. Dzięki.
user1192476

Odpowiedzi:

105

Okazuje się, że problem jest spowodowany nieprawidłową ścieżką węzła w zmiennej systemowej. Ścieżka obecnie wskazuje

(Naprawdę nie wiem, kiedy to zmodyfikowałem)

C:\Program Files\nodejs\node_modules\npm\bin

więc zmieniam na

C:\Program Files\nodejs

i działa jak urok.

user1192476
źródło
16
Miałem ten sam problem. Nigdy nie zmieniałem ścieżki, więc domyślam się, że musiało się to stać podczas aktualizacji Node.
Nils Magne Lunde
Myślę, że problem zaczyna się pojawiać po zainstalowaniu Electrona :(
Charles Walker
4
gdzie to zmieniłeś? jaki plik?
CodeToad
1
Zmienne środowiskowe.
Crozeta
W najnowszej wersji po aktualizacji możesz zobaczyć obie ścieżki w zmiennych środowiskowych, a stara (C: \ Users \ YOUR_USER \ AppData \ Roaming \ npm) ma pierwszeństwo przed nową (C: \ Program Files \ nodejs ). Usunięcie tego pierwszego rozwiązuje problem za mnie.
Shahroq
44

Musisz to uruchomić w linii poleceń.

SET PATH=C:\Program Files\Nodejs;%PATH%
Prathap Kudupu
źródło
bash shell w
systemie
Miałem ten problem podczas uaktualniania mojej wersji node. Twoje rozwiązanie zadziałało dla mnie idealnie. Nie musiałem usuwać żadnego node_modulesfolderu
AllJs
1
Cieszę się, że to pomogło
Prathap Kudupu
Musiałem przesunąć tę ścieżkę dalej w górę, aby nadać jej wyższy priorytet po próbie aktualizacji npm przy użyciu npm (npm -i npm).
Corey Alix
26

Możesz również mieć ten problem, jeśli na swojej drodze masz C:\Program Files\nodejsi C:\Program Files\nodejs\node_modules\npm\bin. Usuń ten ostatni ze ścieżki

Peter Sun
źródło
4
na ścieżce gdzie?
CodeToad
18

Właśnie naprawiłem moją instalację NodeJS i zadziałało!

Idź do Control Panel\All Control Panel Items\Programs and Features-> znajdź NodeJSi wybierz opcję naprawy, aby ją naprawić. Mam nadzieję że to pomoże.

3AK
źródło
1
U mnie to zadziałało, ale nazywa się „aplikacje i funkcje” w
systemie
W moim przypadku nie było folderu npm w node_modules i wszystko, co zrobiłem, to wykonanie polecenia npm install express, naprawienie go pomogło.
Lalit Fauzdar
Dziękuję Ci za to! mój problem został rozwiązany po naprawieniu Nodejs w „aplikacjach i funkcjach” na moim komputerze z systemem Windows!
missjcohen
18

Skopiuj katalog o nazwie npmz zainstalowanej ścieżki węzła (w moim przypadku katalog npm był dostępny C:\Program Files\nodejs\node_modules).

Przejdź do C:\Users\%USERNAME%\AppData\Roaming\npm\node_modulesskopiowanego npmkatalogu i wklej tam.

Ta metoda zadziałała, gdy miałem ten sam błąd. . .

Manoj
źródło
3
Dziękuję, to działało świetnie po uaktualnieniu zepsuło moją instalację i naprawę NPM, a ponowna instalacja nie naprawiła tego.
Slbox,
W których plikach chcemy wprowadzić tę zmianę. Proszę przewodnik
Ibad Shaikh
14

To nie jest ten sam przypadek, co w pytaniu, ale może być pomocny dla kogoś, kto ma podobny problem. W systemie Windows, jeśli wywołujesz npmpolecenia z jakiegoś narzędzia CI / automatyzacji, możesz napotkać błąd:

Error: Cannot find module 'SOME_PATH\node_modules\npm\bin\npm-cli.js'

gdzie SOME_PATHnie jest Program Files/...tylko katalogiem projektu. Dlatego npm próbuje znaleźć npm-cli.js w katalogu głównym projektu zamiast przeszukiwać go Program Files/nodejs.

Powodem jest skrypt npm.cmd:

:: Created by npm, please don't edit manually.
@ECHO OFF

SETLOCAL

SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
  SET "NODE_EXE=node"
)


SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
  SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)

"%NODE_EXE%" "%NPM_CLI_JS%" %*

Ten skrypt używa %~dp0do wyszukiwania npm-cli.js, ale niektóre narzędzia do automatyzacji mogą ustawić katalog roboczy w sposób %~dp0wskazujący na lokalny katalog projektu, więc skrypt działa niepoprawnie.

Jednym z możliwych rozwiązań może być zmiana wywołań npm z tego

npm.cmd install

do tego

cmd.exe /c npm.cmd install
admax
źródło
Jeśli musisz ustawić katalog
roboczy,
Pomogło mi uruchomienie katalogu zmiany za pomocą polecenia npm: "cmd.exe" / c cd / d "T: \ TfsAgent_work \ 1 \ s \ src \ WebHost \" && "C: \ Program Files \ nodejs \ npm.cmd ”install
Daniel Fisher lennybacon
7

Żadna z pozostałych odpowiedzi nie działała dla mnie.

Oto co piszę (w powłoce git bash w systemie Windows):

PATH="/c/Program Files/nodejs/:$PATH" npm run yeoman
edi9999
źródło
6

Napotkałem ten sam problem z węzłem 8.5 po zainstalowaniu z nvm. Poniższe rozwiązanie zadziałało dla mnie

$ nvm uninstall 8.5
8.5.0
Uninstalling node v8.5.0...Error removing node v8.5.0
Manually remove C:\Users\Omkar\AppData\Roaming\nvm\v8.5.0.

$ nvm install 8.5
8.5.0
Downloading node.js version 8.5.0 (64-bit)...
Complete
Creating C:\Users\Omkar\AppData\Roaming\nvm\temp

Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...

Installation complete. If you want to use this version, type

nvm use 8.5.0

Omkar@VAST-0137 MINGW64 /d/code

To zadziałało dla mnie, ponieważ węzeł 8.5 nie był wcześniej poprawnie zainstalowany z nvm. Odkryłem to, ponieważ foldery i pliki „npm \ bin \ npm-cli.js” nie były wcześniej tworzone w module node_modules.

olagu
źródło
Moja ścieżka wyglądała dobrze; Odinstalowanie / Ponowna instalacja rozwiązało problem za mnie.
Mark Maslar
Miałem dziwne problemy ze starym węzłem, nawet po przełączeniu na nowszą wersję. Więc odinstalowałem stary węzeł i ponownie zainstalowałem nowy. W ten sposób naprawiłem problem z cli :) dzięki
Andrej Gaspar
5

Na komputerze Mac:

Uruchomiłem to z wtyczki Maven com.github.eirslett Frontend Plugin, gdy miałem ten sam błąd.

Ostatecznie musiałem:

Zainstaluj Node.js za pomocą instalatora do pobrania tutaj: http://nodejs.org/

Usuń wszystkie foldery node/i node_modules/z mojej struktury kompilacji Maven.

RedYeti
źródło
2
Wygląda na to, że zostało to naprawione w nowszych wersjach wtyczki frontendowej: github.com/eirslett/frontend-maven-plugin/issues/147
Noremac
5

Oprócz powyższego musiałem C:\Users\%USERNAME%\AppData\Roaming\npmteż usunąć . To pomogło.

Romko
źródło
1
W moim systemie znajdują się tam pakiety globalne; jeśli usuniesz go ze ścieżki, możesz już nie być w stanie uruchomić łyka itp.
TrueWill
5

Nie zmieniaj żadnych zmiennych środowiskowych

To instalator spowodował problem i nie zainstalował całego wymaganego pliku.

Właśnie naprawiłem konfigurację NODEJS w systemie Windows 7 i działa bardzo dobrze. Może możesz zainstalować ponownie, po prostu na wypadek, gdyby coś nie działało.

TARJU
źródło
4

W rzeczywistości istnieją 2 ścieżki, które zostały dodane do zmiennej systemowej podczas aktualizacji do najnowszej wersji nodejs.
1. C: \ Program Files \ nodejs
2. C: \ Program Files \ nodejs \ node_modules \ npm \ bin
Użytkownicy systemu Windows 7/8 / 8.1 nie będą mieli inteligentnego interfejsu GUI systemu Windows 10 ze zmiennymi środowiskowymi.
W każdym razie wszystko, co musisz zrobić, to wyszukać "C:\Program Files\nodejs\node_modules\npm\bin"i usunąć.
Usuń także "C:\Users\%USERNAME%\AppData\Roaming\npm"ze swoich zmiennych środowiskowych. Publikuję tę odpowiedź, ponieważ zmarnowałem 10 godzin na szukanie rozwiązania w Internecie. Łącząc powyższe odpowiedzi, w końcu rozwiązuję problem.

hamzox
źródło
4

Zaczęło się to dziać po zainstalowaniu GoogleChrome / puppeteer , rozwiązaniem była ponowna instalacja npm:

$ npm i npm@latest

lub

$ npm install npm@latest
mit
źródło
2

Żadne z rozwiązań tutaj nie działało, ale po ponownym uruchomieniu systemu i ponownym uruchomieniu npm installzadziałało. Domyślam się, że jeden lub więcej procesów, które przeprowadziłem, zanim je wykonałem.

Proste ponowne uruchomienie komputera w systemie Windows 10 zrobiło dla mnie magię!

papigee
źródło
U mnie też zadziałało! Błąd pojawił się prawdopodobnie po aktualizacji Win10
Arno van Oordt
2

Miałem ten sam problem w oknach. Właśnie naprawiłem Node i działało dobrze po ponownym uruchomieniu polecenia w systemie Windows.

Witaj wszechświecie
źródło
2

Wiem, że to starszy post, ale kiedy to piszę, wersja Node js to 12.13.1. Ludzie generalnie spotykają się z tym, ponieważ mogli już zainstalować poprzednią wersję Node js, która dodała następujące elementy do ścieżki systemowej.

C: \ Program Files \ nodejs \ node_modules \ npm \ bin

Jednak nowsze wersje muszą dodać następujące elementy: -

C: \ Pliki programów \ nodejs

Mam na myśli ścieżkę, na której zainstalowałeś Nodejs. Wartość domyślna to

C: \ Pliki programów \ nodejs

Jeśli jednak podałeś inną lokalizację, powinieneś to wskazać.

Kodowanie bestii
źródło
1

po prostu uruchom to polecenie:

npm i npm@latest -g
AissaDevLab
źródło
Witamy w Stack Overflow! Czy mógłbyś wyjaśnić, co to robi i jak odpowiada na pytanie?
anothernode
1

npm install -g npm @ [wersja] naprawił problem

repozytorium
źródło
1

W systemie Windows 10:

  1. Naciśnij klawisz Windows, wpisz edytuj zmienne środowiskowe systemu, a następnie wprowadź.
  2. Kliknij zmienne środowiskowe ...
  3. W dolnej połowie okna, które zostało otwarte z tytułem Zmienne środowiskowe, zobaczysz tabelę zatytułowaną Zmienne systemowe, z dwiema kolumnami, pierwsza zatytułowana zmienna.
  4. Znajdź wiersz ze zmienną Path i kliknij go.
  5. Kliknij Edytuj, co spowoduje otwarcie okna zatytułowanego Edytuj zmienną środowiska.
  6. Tutaj, jeśli znajdziesz

C: \ Program Files \ nodejs \ node_modules \ npm \ bin

wybierz go i kliknij przycisk edytuj po prawej stronie, a następnie edytuj pole do ścieżki, w której masz folder nodejs, w moim przypadku było to po prostu skracanie do:

C: \ Pliki programów \ nodejs

Następnie zamknąłem wszystkie terminale cmd lub powershell, otworzyłem je ponownie i npm działał.

Julio Peguero
źródło
1

Dla facetów wciąż poruszających się po tym wątku:

  • zainstaluj węzeł z oficjalnej strony (sprawdź npm i wersję węzła, aby sprawdzić, czy jest poprawnie zainstalowany, tak w nowym terminalu / cmd);
  • zainstaluj nvm teraz i gdy pojawi się pytanie, czy zarządzać bieżącym węzłem za pomocą nvm kliknij tak;
  • otwórz nowe cmd i uruchom nvm na.
Keshav Sharma
źródło
Nie musisz instalować Node z oficjalnej strony z nvm: możesz zainstalować najnowszą wersję Node z uruchomionym nvm nvm install latest.
Marco Lackovic
0

Rozwiązanie dla mnie w VS2017 (w obszarze Narzędzia | Opcje ...)

W obszarze Narzędzia |  Opcje ...

Zmieniłem ścieżkę na: C: \ Program Files \ nodejs

Michael Maier
źródło
0

Napotykam ten problem podczas instalowania node9.0.0 na windows7 na końcu rozwiązaniem było po prostu usunięcie npm npm.cmd npx npx.cmd z C: \ Program Files \ nodejs \ node_modules \ npm \ bin przed wykonaniem tego obejścia uruchom C: \ Program Files \ nodejs \ npm, więc jest to jeden sposób, więc sprawdź, czy masz ten sam problem, co ja.

Gryf
źródło
0

utwórz ręcznie folder npm w node_modules i uruchom ponownie instalator z opcjami naprawy. Kopiuje brakujące pliki.

Saurabh Nainwal
źródło
0

W moim przypadku używałem nvm-windows 1.1.6 i zaktualizowałem moją wersję nodejs za pomocą nvm install latest, co ostatecznie powiedziało mi, że nodejs i npm są zainstalowane, jednak kiedy próbowałem to zrobić npm install, otrzymałem

Błąd: nie można znaleźć modułu „C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js”

po sprawdzeniu struktury nvm-windows stwierdziłem, że C:\Program Files\nodejsbył on dowiązany symbolicznie %APPDATA%\nvm\NODE_VERSION(w moim przypadku NODE_VERSION to 9.7.1), w którym folder node_modulesnie ma nic wewnątrz, spowodował ten błąd. Rozwiązaniem było skopiowanie npmfolderu z folderu jednej z moich poprzednich wersji node_modulesi wklejenie go. Następnie zaktualizowałem mój npm npm install npm@next -gi wszystko zaczęło działać ponownie.

Cemal
źródło
0

Dla mnie żadne z powyższych nie zadziałało, po prostu zauważyłem, że za każdym razem, gdy wykonuję polecenie „npm install ...”, każde polecenie npm po prostu przestaje działać. Dlatego przy każdej instalacji muszę uruchomić program instalacyjny NodeJS i wybrać opcję „napraw”. Aż znajdę prawdziwe rozwiązanie :)

Olivier
źródło
Dobrze jest publikować rozwiązania, a także to doceniamy .. Ale byłoby lepiej, gdybyś wyjaśnił logicznie, zamiast mówić, że zadziałało magicznie :)
Aousaf rashid
0

Aktualizacja NPM do najnowszej wersji zadziałała dla mnie:

npm install npm@latest -g
Zylo
źródło
0

Zmień zmienną ścieżki środowiskowej C: \ Program Files \ nodejs \ node_modules \ npm \ bin i otwórz terminal poleceń i npm -v i

lokesh sharma
źródło
0

Napotkałem dziś dokładnie ten sam problem na serwerze Linux. Powód jest naprawdę prosty, ponieważ nie zrobiłem tego make installpóźniej makei próbowałem bezpośrednio wywołać wygenerowanynpm . Zatem PATH i wszystko było w bałaganie.

Więc dla mnie rozwiązaniem jest po prostu zrobić make installpo makei uruchomić npmunder .node/bin/npm.

Yuan Tao
źródło
0

Błąd: nie można znaleźć modułu „C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ node_modules \ npm \ bin \ npm-cli.js”

Spójrz na powyższe i oczywiste jest, że ścieżka ma problem. 'C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ node_modules \ npm \ bin \ npm-cli.js' POWINIEN BYĆ ZMIENIONY NA -> 'C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm -cli.js ', co oznacza, że ​​"\ node_modules \ npm \ bin" pomiędzy nimi zostało zduplikowane, co spowodowało tak głupi błąd. Naprawiłem to, edytując zmienną systemową i zaktualizowałem PATH, jak opisano powyżej.

Ben
źródło