2015-12-01 18 views
28

Dzisiaj jest mój pierwszy dzień mojej pierwszej pracy i po skonfigurowaniu środowiska programistycznego przez aktualizację węzła i npm na moim Macu (OSX) wydaje mi się, że coś zepsułem. Za każdym razem staram się korzystać z KMP w moim poleceń (npm startowych, npm instalacji, itp) otrzymuję komunikat o błędzie:Nie można znaleźć komunikatu o błędzie modułu "npmlog" podczas używania polecenia npm.

module.js:339

throw err;

Error: Cannot find module 'npmlog'

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 /usr/local/lib/node_modules/npm/bin/npm-cli.js:20:13

at Object. (/usr/local/lib/node_modules/npm/bin/npm->cli.js:76:3)

at Module._compile (module.js:425:26)

at Object.Module._extensions..js (module.js:432:10)

at Module.load (module.js:356:32)

at Function.Module._load (module.js:311:12)

Nie ma wiele z komunikatem o błędzie, aby przejść się i ISN ślad stosu nie pomagając mi tak bardzo. Oto co próbowałem:

  1. Szukano wokół Stackoverflow i choć istnieją podobne problemy, ludzie byli w stanie wykorzystać npm <something> rozwiązać ich problem, którego nie mogę zrobić.
  2. Odinstalowanie i ponowne zainstalowanie npm - nie działało, ponieważ nie mogę używać polecenia npm, więc rzeczy takie jak sudo npm uninstall npm -g nie działają.
  3. Usunięto katalog npmlog z katalogu .npm, a następnie sklonowano ponownie repozytorium github bezpośrednio do katalogu.

Mam nadzieję, że jeden z was już wcześniej do tego doszedł lub ma pomysł, jak do niego podejść. Każda pomoc jest doceniana.

Odpowiedz

3

w moim stanie, po prostu brew uninstall node i pobrać z oficjalnej strony i pracował dla mnie

17

Oto jeden dobry link Fixing npm On Mac OS X for Homebrew Users.

z następujących poleceń podczas próby uaktualnienia node.js pod mac

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

Dzięki za link. Uratowało mnie to wiele kłopotów. – Willa

+4

Na OS X El Capitan podczas instalacji npm 3.9.3, po wykonaniu tej czynności miałem 'npm: command not found'. Musiałem dodać 'export PATH =" $ HOME/.npm-packages/bin: $ PATH "' do mojego '.bash_profile' – Iwazaru

18

Oto kroki, które pracowały dla mnie:

$ sudo rm -rf /usr/local/bin/npm 
$ sudo rm -rf /usr/local/lib/node_modules/npm 
$ brew uninstall node 
$ brew install node 
4

Właśnie napotkał ten problem na komputerze Mac, a na bliższa inspekcja wydaje mi się, że problem polega na tym, że wewnątrz katalogu aplikacji węzła w pewnych okolicznościach link w katalogu node/bin do npm w lib/node_modules/npm/bin jest zastępowany przez sam plik i dlatego nie powiedzie się s (i dlaczego wszystkie różne metody skryptów to naprawiają, ponieważ poprawnie zachowują link do pliku).

Gdybym skopiowania zawartości node-v6.9.4-darwin-x64 z cp następnie uzyskać ten problem, ale jeśli mogę skopiować pliki za pomocą programu Finder, a ja nie. Możesz to naprawić, ręcznie odtwarzając link pod numerem ln, jeśli nie chcesz korzystać z Findera (alternatywnie, mv lub rsync -a może również działać, nie testowałem ich).

Mam nadzieję, że pomoże to komuś przybyć tutaj w celu rozwiązania tego problemu.

Edytuj: Przypadkowo znalazłem przyczynę problemu na komputerach Mac (w każdym razie w moim konkretnym scenariuszu): zawsze kopiowałem katalogi za pomocą cp -r. To dlatego, że jestem stary i nie uczę się już nowych rzeczy. Prawidłowy jest cp -R, który poprawnie kopiuje wszystko, tak jak powinien.

+2

Dzięki, miałem dokładnie ten sam problem. Pobrałem gotowy pakiet z nodejs.org, wyodrębniłem go na moim macu, a następnie przesłałem do systemu docelowego przez SFTP. Raz w systemie docelowym, dowiązanie symboliczne zostało zerwane, co skutkowało powyższym komunikatem o błędzie. Usunięcie uszkodzonego łącza: node/bin/npm i zastąpienie go węzłem 'ln -s node/lib/node_modules/npm/bin/npm-cli.js node/bin/npm' naprawiło problem. – bagonyi

+0

Powinienem wspomnieć, że użycie 'ln -nfs' powinno usunąć oryginalny plik i zastąpić go miękkim łączem. Oszczędzi ci kroku! Chociaż czasami może zawieść. –

+0

Użyłem scp do kopiowania z jednego serwera na drugi i doświadczyłem tego samego problemu. – Jeremy

0

Napotkałem ten sam błąd. To było na serwerze nie podłączonym do internetu. Widziałem wątek na Github, który wspomniał czasami, że dowiązania symboliczne można usunąć podczas wykonywania kopii lub innych operacji na plikach. Zrobiłem więc "znalezisko" w katalogu węzłów dla symbolicznych odsyłaczy do problematycznego serwera i żadnego tam, gdzie go znalazłem. Robiąc to samo na działającym serwerze, znaleziono symboliczne pliki linków.

Poszedłem do NODE_HOME/bin i zrobił ls -l

Rzeczywiście miałem pliku dla KMP. Wykonano te same czynności na działającym serwerze, a plik NPM był dowiązaniem symbolicznym. Aby rozwiązać ten serwer problematyczny, że przeprowadzone następujące:

rm npm

ln -s ../lib/node_modules/npm/bin/npm-cli.js npm

0

Got ten sam błąd podczas instalacji kątomierz w RedHat Linux zaktualizowany plik

npm

na

/node-v6.10.2-linux-x64/bin/npm

na ścieżce modułu jak poniżej:

kod przed

var log = require('npmlog') 

Kodeksu Po

var log = require('/node-v6.10.2-linux-x64/lib/node_modules/npm/node_modules/npmlog') 
0

dla mnie, wpadłem brew uninstall node a następnie pobrać najnowszą wersję ze nodejs.org i to działało .

Powiązane problemy