Próbowałem przeprowadzić aktualizację phonegap
przez, npm
kiedy zacząłem mieć kłopoty. Krótko mówiąc, node_modules
na moim komputerze są dwa katalogi.
/usr/local/lib/node_modules
/usr/local/share/npm/lib/node_modules
Po uruchomieniu npm upgrade -g phonegap
wydaje się, że npm
aktualizuje kopię pakietu, który znajduje się w /usr/local/lib/node_modules
. Jeśli jednak which phonegap
stwierdzę, że link symboliczny wskazuje na starszą instalację pod adresem /usr/local/share/npm/lib/node_modules
.
Ponadto, gdy próbuję zainstalować samodzielny pakiet express
, na przykład pliki są instalowane w /usr/local/lib/node_modules
katalogu, ale w żadnym miejscu nie jest tworzone żadne dowiązanie symboliczne do pliku wykonywalnego $PATH
.
Dwa pytania:
- Jaki jest właściwy katalog dla modułów węzłów w systemie Mac OS X?
Jak mogę skonfigurowaćnpm
łącze do plików wykonywalnych w moim$PATH
podczas instalowania oprogramowania?
Punkty dodatkowe: czy metoda instalacji node
wpływa na konfigurację? Istnieje wiele opcji .
EDYCJA : Dowiedziałem się, że dowiązania symboliczne są tworzone w moim /usr/local/bin
, ale mój .bash_profile
został skonfigurowany z /usr/local/share/npm/bin
wyprzedzeniem /usr/local/bin
w moim $PATH
. Niewyraźnie pamiętam, jak w pewnym momencie dodałem tę ścieżkę do mojego profilu, ale nie wiem dlaczego.
Pojawia się więc pytanie: jak skończyłem z dwoma różnymi node_modules
katalogami na moim komputerze i dlaczego chciałbym mieć mój node_modules
w share/npm/lib
podkatalogu zamiast bezpośrednio w /usr/local/lib
?
Drugi Thomas David Kehoe , z następującym zastrzeżeniem -
Jeśli używasz menedżera wersji węzła (nvm), twoje globalne moduły węzłów będą przechowywane w dowolnej wersji węzła, której używasz w momencie zapisywania modułu.
A więc
~/.nvm/versions/node/{version}/lib/node_modules/
.źródło
aby sprawdzić globalną lokalizację npm_modules
źródło
Jeśli chcesz poznać lokalizację swoich pakietów NPM, powinieneś:
which npm // locate a program file in the user's path SEE man which // OUTPUT SAMPLE /usr/local/bin/npm la /usr/local/bin/npm // la: aliased to ls -lAh SEE which la THEN man ls lrwxr-xr-x 1 t04435 admin 46B 18 Sep 10:37 /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
Biorąc więc pod uwagę, że npm sam jest pakietem NODE, jest on instalowany w tej samej lokalizacji, co inne pakiety ( EUREKA ). Tak więc, aby potwierdzić, powinieneś wejść do node_modules i wyświetlić katalog.
cd /usr/local/lib/node_modules/ ls #SAMPLE OUTPUT @angular npm .... all global npm packages installed
LUB
Zgodnie z komentarzem @anthonygore
źródło
npm root -g
iwhich npm
nie dało takich samych wyników. Chciałem odinstalowaćexpo-cli
i udało mi się usunąćexpo
iexpo-cli
katalogi z/usr/local/bin/npm
. Dziękuję @ T04435!