2014-06-24 13 views
16

Zaczynam Learn to Build Modern Web Apps with the AngularJS Tutorial i uruchamiam problemy bardzo wcześnie.Pierwsze npm: polecenie nie znaleziono. Jak ponownie zainstalować NPM, gdy węzeł jest już zainstalowany? Gdzie się udał NPM?

mam zainstalowany węzeł:

/path/ang-news node -v 
v0.10.26 

używałem KMP wcześniej, ale został uruchomiony w kłopoty z Yeoman. Powtórzyłem te kroki jakiś czas temu, ale Grunt przestał działać, więc zacząłem być świeży.

Pobiegłem:

$ sudo npm install -g generator-angular 

i wszystkie zależności zostały instalacji aż dostałam:

npm WARN package.json [email protected] No repository field. 
npm ERR! peerinvalid The package generator-karma does not satisfy its siblings' peerDependencies requirements! 
npm ERR! peerinvalid Peer [email protected] wants [email protected]>=0.8.2 

Następnie próbowałem aktualizacji:

$ npm update -g 

powinienem uruchomić to jako administrator. Otrzymałem mnóstwo komunikatów o błędach, to wydawało się najbardziej istotne:

npm ERR! Please try running this command again as root/Administrator. 

npm ERR! System Darwin 13.1.0 
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "update" "-g" 
npm ERR! cwd /path/ang-news 
npm ERR! node -v v0.10.26 
npm ERR! npm -v 1.4.3 

npm ERR! not ok code 0 

Potem próbowałem odinstalowanie generator karmy i rozpoczęcie świeże:

$ sudo npm uninstall -g generator-karma 

ale otrzymali:

sudo: npm: command not found 

$ npm -v 
-bash: /usr/local/bin/npm: No such file or directory 

Mój pierwszy Pytanie brzmi: dlaczego NPM nagle zniknął?

[EDIT: Kudos, aby @ spróbować złapać-w końcu, aby wskazać spustoszenie, które powstaje podczas przełączania między normalnym użytkownikiem i sudo podczas wydawania poleceń. Okazuje się, że zawiodłem moje środowisko użytkownika i NPM nie była już zainstalowana.]

Rozumiem, że NPM jest instalowany podczas instalacji węzła, więc moje drugie pytanie brzmi: Jak ponownie zainstalować tylko NPM? Nie chcę od nowa instalować węzła.

[EDIT: Kudos do @hawk i @ try-catch-wreszcie - nie wydaje się, że instalacja KMP sam jest opcją, ale istnieją easy ways to reinstall both.]

+0

Nie sądzę, że to możliwe. Jedyną możliwą odpowiedzią jest całkowite przeinstalowanie węzła. – hawk

+1

@hawk Dzięki. Jaka szkoda. Byłoby świetnie dowiedzieć się, jak i dlaczego tak się stało, więc mogę tego uniknąć w przyszłości. – Rotimi

+2

Dlaczego pomieszałeś polecenia jako zwykły użytkownik i root? '$ npm update -g' jak napisałeś wygląda źle, jeśli masz do czynienia z globalnymi pakietami, musisz uruchomić to również jako root. Zabawne: potem użyłeś 'sudo', ale zrobiłeś inne polecenie' npm'. Może zawiedliście środowisko użytkownika? Czy możesz sprawdzić, czy '/ usr/local/bin/npm' naprawdę nie istnieje? Spróbuj 'find/usr' it. Na oryginalnym błędzie 'Peer [email protected]@.9.9 chce generatora-karma @> = 0.8.2': Wygląda na to, że faceci' generator-kątowe' zaktualizowali zależności, których nie ma w repozytorium (natknąłem się na takie problemy). –

Odpowiedz

37
  1. Jeśli masz węzeł roboczy można ponownie zainstalować npm

curl -L https://npmjs.org/install.sh | sudo sh

  1. Niestety npm update -g nie robić to, co ktokolwiek spodziewa. Naprawienie tego jest na mapie drogowej npm, ale zajmie to trochę czasu.

  2. Prawie nigdy nie musisz instalować pakietu globalnie, chyba że (jak generator-angular lub grunt-cli) chcesz użyć tego pakietu jako polecenia.

+3

Awesome, naprawiono sudo: npm: polecenie nie znaleziono –

+0

Dzięki @sam, to pomoże mi rozwiązać mój problem, –

4

Na wypadek, gdybyś zrobił to z napojem, polecam ten artykuł na github. Zaoszczędzę ci dużo czasu.

https://gist.github.com/DanHerbert/9520689

Mocowanie KMP W systemie Mac OS X dla Homebrew Użytkowników Uruchom następujące polecenia, aby usunąć wszystkie istniejące globalne moduły NPM, odinstaluj węzeł & KMP, ponownie zainstalować węzeł z odpowiednich ustawień domyślnych, należy zainstalować npm jako własny pakiet i skonfigurować lokalizację dla globalnych modułów npm do zainstalowania.

rm -rf /usr/local/lib/node_modules 
brew uninstall node 
brew install node --without-npm 
echo prefix=~/.node >> ~/.npmrc 
curl -L https://www.npmjs.com/install.sh | sh 

Węzeł i NOP powinny być poprawnie zainstalowane w tym miejscu. Ostatnim krokiem jest dodanie ~/.node/bin do zmiennej PATH, aby polecenia instalowane globalnie były użyteczne. Dodałem tę linię do mojego skryptu ~/.path, który uruchamia się za pośrednictwem ~/.bash_profile. Uruchom następującą linię bez zmian.

export PATH="$HOME/.node/bin:$PATH" 
+0

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej jest dołączyć istotne części odpowiedzi tutaj i dostarczyć link do odniesienia. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. - [Z recenzji] (/ opinia/niskiej jakości-posts/10501700) –

+0

@ValentinLorentz przepraszam, jest aktualizacja.Daj mi znać, jeśli wygląda dobrze. – alphapilgrim

0

poznałem dokładnie ten sam problem po wykonanie polecenia zainstalować KMP z najnowszej wersji na RedHat 7.1:

npm install [email protected] -g 

po kilku próbach znalazłem rozwiązanie:

yum reinstall npm 

Mam nadzieję, że może to pomóc użytkownikom redhat/centos.

Powiązane problemy