Jak całkowicie odinstalować Node.js i ponownie zainstalować od początku (Mac OS X)


1289

Moja wersja węzła jest zawsze w wersji v0.6.1-pre nawet po zainstalowaniu węzła brew i NVM w wersji v0.6.19.

Moja wersja węzła to:

node -v
v0.6.1-pre

NVM tak mówi (po pierwszej instalacji wersji węzła w jednym terminalu bash):

nvm ls
v0.6.19
current:    v0.6.19

Ale kiedy ponownie uruchamiam bash, widzę to:

nvm ls
v0.6.19
current:    v0.6.1-pre
default -> 0.6.19 (-> v0.6.19)

Gdzie jest więc ten fantomowy węzeł w wersji 0.6.1 w wersji wstępnej i jak się go pozbyć? Próbuję zainstalować biblioteki za pomocą NPM, aby móc pracować nad projektem.

Próbowałem użyć BREW do aktualizacji przed NVM, używając brew updatei brew install node. Próbowałem usunąć katalog „node” w moim /usr/local/includeoraz „node” i „node_modules” w moim /usr/local/lib. Próbowałem odinstalować npm i ponownie zainstalować go zgodnie z tymi instrukcjami.

Wszystko to, ponieważ próbowałem zaktualizować starszą wersję węzła, aby zainstalować bibliotekę „zipstream”. Teraz w moim katalogu użytkowników są foldery, a wersja węzła STILL nie jest aktualna, mimo że NVM twierdzi, że używa wersji 0.6.19.

Idealnie chciałbym odinstalować nodejs, npm i nvm, i po prostu ponownie zainstalować wszystko od zera w moim systemie.



/ usr / bin / node to kolejny ...
Aaron Blenkush

1
może to pomóc każdemu, kto zainstalował węzeł za pomocą pliku pkg. superuser.com/questions/36567/…
karthikeayan

Mac 10.13.5 ma / Users / myusername / node_modules czy powinienem również usunąć ten folder? Szukałem w tym wątku, ale wydaje się, że nikt nie zmierzył się z tym problemem
vikramvi

@Pacerier, nawet po wykonaniu instrukcji gist, nadal istnieje węzeł i npm w Mac OS 10.13.5
vikramvi

Odpowiedzi:


1696

Widocznie nie było /Users/myusername/localfolder zawierał includez nodei libz nodea node_modules. Jak i dlaczego został utworzony zamiast w moim /usr/localfolderze, nie wiem.

Usunięcie tych lokalnych odniesień naprawiło fantom v0.6.1-pre. Jeśli ktoś ma wyjaśnienie, wybiorę to jako poprawną odpowiedź.

EDYTOWAĆ:

Może być konieczne wykonanie dodatkowych instrukcji:

sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

co jest równoważne (tak jak powyżej) ...

sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* /usr/local/lib/dtrace/node.d ~/.npm ~/.node-gyp 

lub (tak jak powyżej) w podziale ...

Aby całkowicie odinstalować węzeł + npm, wykonaj następujące czynności:

  1. przejdź do / usr / local / lib i usuń dowolny węzeł i moduły_węzła
  2. przejdź do / usr / local / include i usuń dowolny katalog node i node_modules
  3. jeśli zainstalowano przy użyciu węzła instalacyjnego brew , uruchom węzeł deinstalacyjny brew w swoim terminalu
  4. sprawdź nasz katalog domowy dla każdej lokalnej lub lib lub zawierać foldery i usunąć dowolny węzeł lub node_modules stamtąd
  5. przejdź do / usr / local / bin i usuń dowolny plik wykonywalny węzła

Może być również konieczne wykonanie:

sudo rm -rf /opt/local/bin/node /opt/local/include/node /opt/local/lib/node_modules
sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d

Dodatkowo NVM modyfikuje zmienną PATH $HOME/.bashrc, którą należy ręcznie przywrócić .

Następnie pobierz nvm i postępuj zgodnie z instrukcjami, aby zainstalować węzeł. Wydaje mi się, że najnowsze wersje węzła są wyposażone w npm , ale można to również zainstalować ponownie.


82
Ja też musiałem rm -rf /Users/[homedir]/.npm.
brokenindexfinger

17
Potrzebne również do usunięcia/Users/[homedir]/.nvm
n0pe

42
Pobiegłem, brew doctora potem brew pruneposprzątałem kilka zepsutych dowiązań symbolicznych dla NPM.
Chris Jacob

54
Złożyłem razem scenariusz, który teraz przetestowałem w bitwie. Dzięki @DominicTancredi to działa świetnie! gist.github.com/brock/5b1b70590e1171c4ab54
brock

13
Miałem też dodać: sudo rm -rf ~/.node-gyp. Dodałem go do MacPorts, zanim przestawiłem się na parzenie.
JESii

518

Dla użytkowników brew OSX :

Usuwać:

brew uninstall node; 
# or `brew uninstall --force node` which removes all versions
brew cleanup;
rm -f /usr/local/bin/npm /usr/local/lib/dtrace/node.d;
rm -rf ~/.npm;

Żeby zainstalować:

brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules' # <--- add this ~/.bashrc

Możesz uruchomić, brew info nodeaby uzyskać więcej informacji na temat instalacji twojego węzła.


rozważ użycie NVM zamiast naparu

NVM (menedżer wersji węzła) to przenośne rozwiązanie do zarządzania wieloma wersjami węzła

https://github.com/nvm-sh/nvm

> nvm uninstall v4.1.0
> nvm install v8.1.2
> nvm use v8.1.2
> nvm list
         v4.2.0
         v5.8.0
        v6.11.0
->       v8.1.2
         system

możesz użyć tego z AVN do automatycznego przełączania wersji podczas przeskakiwania między różnymi projektami z różnymi zależnościami węzłów.


2
Jak ustawić zmienne env, aby węzeł i npm były dostępne po takiej instalacji?
Maxim V. Pavlov,

13
Może być konieczne uruchomienie naparu z --forceflagą, aby upewnić się, że wszystkie wersje węzła zostały usunięte: $ brew uninstall --force node
magikMaker

-bash: /usr/local/bin/npm: No such file or directoryco mogę teraz zrobić?
ValRob,

5
> „rozważ użycie NVM zamiast naparu”; Jak na ironię możesz zainstalować NVM z naparem !; Świetna wskazówka, dzięki.
HankCa

2
Korzystanie z NVM pomogło.
coderpc

186

Wiem, że ten post jest trochę przestarzały, ale po prostu chciałem udostępnić polecenia, które działały dla mnie w Terminalu podczas usuwania Node.js.

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

AKTUALIZACJA: 23 SEP 2016


Jeśli boisz się uruchamiać te polecenia ...

Dzięki jguixza this quick tutorial.

Najpierw utwórz plik pośredni:

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom >> ~/filelist.txt

Ręcznie przejrzyj plik (znajdujący się w Homefolderze)

 ~/filelist.txt

Następnie usuń pliki:

cat ~/filelist.txt | while read f; do sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

Dla wersji 10.10.5 i nowszych

Dzięki Lenar Hoyt

Źródło komentarza Gist: gistcomment-1572198

Oryginalna treść: TonyMtz/d75101d9bdf764c890ef

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | while read f; do sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

15
Whoa-- to jest przerażające. Przynajmniej pierwszy „rm” nie jest „rm -rf”, który, jeśli na wyjściu sbom jest pusta linia, usuwa wszystkie / usr / local. Przed zrobieniem czegoś tak ciężkiego zręcznie, sprawdź dane wyjściowe sbom i skąd pochodzą te wszystkie katalogi i upewnij się, że dokładnie wiesz, co usuwasz.
Don Hatch

16
Powinienem dodać ... jeśli masz zdrowy instynkt samozachowawczy, niezwykle trudno ci będzie wpisać lub skopiować i wkleić to drugie polecenie, które w ogóle zaczyna się od „sudo rm -rf /”. Jedno kichnięcie lub kot wskakuje na klawiaturę i zniszczyłeś swój system plików.
Don Hatch

2
To org.nodejs.node.pkg.bomzamiast org.nodejs.pkg.bom.
Lenar Hoyt,

1
@DonHatch skopiuj linię bez pierwszej litery, aby zaczynała się od, udo..a następnie dodawała sprzed uruchomieniem.
youurayy,

1
Komenda lsbom wyświetla ścieżki względne, więc skrypt próbował usunąć ścieżki, które wyglądały /usr/local/./node/yada. Aby usunąć ./prefiks, użyłem filtru cięcia: lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | cut -c 3- | while read f; do sudo rm /usr/local/${f}; done
kodowanie czasowe

142

Na Mavericks instaluję go z węzła pkg (ze strony nodejs) i odinstalowuję, aby móc ponownie zainstalować przy użyciu brew. W terminalu uruchamiam tylko 4 polecenia:

  1. sudo rm -rf /usr/local/lib/node_modules/npm/
  2. brew uninstall node
  3. brew doctor
  4. brew cleanup --prune-prefix

Jeśli nadal istnieje instalacja węzła, powtórz krok 2. Po wszystkim, wszystko jest w porządku, instaluję za pomocą brew install node


50
1 zadziałało, ale 2 zawiodło. Dostaję komunikat „brak takiej beczki: usr / local / Cellar / node”
PositiveGuy

Tak, najlepiej, jeśli masz Mavericks
Dicer

1
Spróbowałem, ale znowu pojawia się ten sam błąd Błąd: brew linkKrok nie został ukończony pomyślnie
Chandni,

Dzięki, idealne, z wyjątkiem tego, że musiałem dodać --force to brew uninstall
Medhi

1
FYI: W chwili pisania tego tekstu -->brew prune Error: Calling 'brew prune' is disabled! Use 'brew cleanup --prune-prefix' instead.
Mike S.

33
  1. Pierwszy:

    lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; done
    
    sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
  2. Podsumowując, najlepszym sposobem (znalazłem), aby całkowicie odinstalować węzeł + npm, jest wykonanie następujących czynności:

    przejdź do /usr/local/libi usuń dowolny węzeł i moduły_węzła

    cd /usr/local/lib
    
    sudo rm -rf node*
  3. przejdź do /usr/local/includei usuń dowolny katalog node i node_modules

    cd /usr/local/include
    
    sudo rm -rf node*
  4. jeśli zainstalowałeś brew install node, uruchom brew uninstall nodew swoim terminalu

    brew uninstall node
  5. sprawdź, czy w katalogu domowym nie ma folderów „lokalnych”, „lib” lub „włącz”, i usuń stamtąd wszystkie „node” lub „node_modules”

    przejdź do / usr / local / bin i usuń dowolny plik wykonywalny węzła

    cd /usr/local/bin
    
    sudo rm -rf /usr/local/bin/npm
    
    ls -las
  6. Może być konieczne wykonanie dodatkowych instrukcji:

    sudo rm -rf /usr/local/share/man/man1/node.1
    
    sudo rm -rf /usr/local/lib/dtrace/node.d
    
    sudo rm -rf ~/.npm

Źródło: tonyMtz


7
Usuwanie node*nie jest szczególnie bezpiecznym sposobem postępowania. Mogą istnieć inne pliki binarne z tym prefiksem.
Lenar Hoyt,

2
Świetnie, wreszcie po 3 dniach, kiedy co jakiś czas pojawiały się problemy npm, całkowicie usunięte i ponownie zainstalowane za pomocą brew na moim Macu, działa jak urok.
Amit Bravo,

Po can't open /var/db/receipts/org.nodejs.pkg.bom: No such file or directory **** Can't open /var/db/receipts/org.nodejs.pkg.bom.
uruchomieniu

Nawet po wykonaniu tych kroków na Macu 10.13.5 nadal mogę zobaczyć npm i węzeł, co może pójść nie tak?
vikramvi

25

obniżyć węzeł do wersji 0.10.36

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n 0.10.36

zaktualizuj węzeł do stabilnego v

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n stable

Właśnie to zrobiłem i, o dziwo, obniżyłem npm z 6.4.1 do 6.2.0.
Capn Sparrow,

22

Nie jestem pewien, czy to dlatego, że miałem starą wersję (4.4.5), czy też dlatego, że korzystałem z oficjalnego instalatora, ale większość plików wymienionych w innych odpowiedziach nie istnieje w moim systemie. Musiałem tylko usunąć następujące elementy:

~/.node-gyp
~/.node_repl_history
/usr/local/bin/node
/usr/local/bin/npm
/usr/local/include/node
/usr/local/lib/dtrace/node.d
/usr/local/lib/node_modules
/usr/local/share/doc/node
/usr/local/share/man/man1/node.1
/usr/local/share/systemtap/tapset/node.stp

Zdecydowałem się zachować, ~/.npmponieważ planowałem ponowną instalację Node z Homebrew.


Ta odpowiedź została udzielona w 2012 roku, więc jestem pewien, że ma w sobie trochę dziedzictwa. Teraz, jeśli pojawią się nowe odpowiedzi, głosuję za nimi po sprawdzeniu, czy są skuteczne.
Dominic Tancredi

15

Podsumowałem istniejące odpowiedzi i upewniłem się, że Node js jest CAŁKOWICIE USUNIĘTY wraz z NPM.

  1. brew uninstall node
  2. which node
  3. sudo rm -rf /usr/local/bin/node
  4. sudo rm -rf /usr/local/lib/node_modules/npm/
  5. brew doctor
  6. brew cleanup --prune-prefix

Linie do skopiowania do terminala:

brew uninstall node;
which node;
sudo rm -rf /usr/local/bin/node;
sudo rm -rf /usr/local/lib/node_modules/npm/;
brew doctor;
brew cleanup --prune-prefix;

Wykonałem te kroki i wydaje się, że zadziałały. Nadal mam katalogów w moim folderze głównym jak .node-gyp/, .npm/, .npm-global/, i .nvm/. Czy mogę je usunąć, czy powinienem je zachować, jeśli planuję ponowną instalację węzła?
WaterTrash

10
  • Usuń node i / lub node_modules z / usr / local / lib

          ex code:
          cd /usr/local/lib
          sudo rm -rf node
          sudo rm -rf node_modules
  • Usuń node i / lub node_modules z / usr / local / include

  • Usuń węzeł, debugowanie węzła i węzeł-gyp z / usr / local / bin
  • Usuń .npmrc z katalogu domowego (są to twoje ustawienia npm, nie usuwaj tego, jeśli planujesz od razu ponownie zainstalować Node)
  • Usuń .npm z katalogu domowego
  • Usuń .node-gyp z katalogu domowego
  • Usuń .node_repl_history z katalogu domowego
  • Usuń węzeł * z / usr / local / share / man / man1 /
  • Usuń npm * z / usr / local / share / man / man1 /
  • Usuń node.d z / usr / local / lib / dtrace /
  • Usuń węzeł z / usr / local / opt / local / bin /
  • Usuń węzeł z / usr / local / opt / local / include /
  • Usuń moduły_węzła z / usr / local / opt / local / lib /
  • Usuń węzeł z / usr / local / share / doc /
  • Usuń node.stp z / usr / local / share / systemtap / tapset /

Miałem też usunąć node@6z/usr/local/opt/
echo


8

Po

brew uninstall node

Musiałem wiedzieć, który węzeł

which node

następnie usuń to

rm -rf /usr/local/bin/node

7

Jeśli już zainstalowałeś nvm, wykonaj następujące polecenia

  • nvm deactivate - Spowoduje to usunięcie /.nvm/*/bin z $ PATH
  • nvm list - Aby wyświetlić listę wszystkich wersji węzła zainstalowanych w systemie
  • nvm uninstall <version> możesz określić wszystkie wersje, które chcesz odinstalować.

Zawsze dobrze jest zainstalować węzeł za pomocą nvmi odinstalować za pomocą nvm zamiast brew.

To rozwiązanie działało dla mnie.

Dodatkowe polecenia

  • which nodepoznać ścieżkę węzła zainstalowanego w systemie. Możesz uruchomić ten katalog, aby ręcznie odinstalować węzeł. Następnie może być konieczne odpowiednie dostosowanie pliku PATH.

6

Rozwijając niesamowitą odpowiedź Dominica Tancrediego, umieściłem ją w pakiecie bash i samodzielnym skrypcie. Jeśli już używasz „Menedżera pakietów tylnych ” o nazwie bpkg , możesz zainstalować skrypt, uruchamiając:

bpkg install -g brock/node-reinstall

Lub możesz rzucić okiem na skrypt na Github w brock / node-ponowna instalacja . Skrypt umożliwia ponowną instalację węzła za pomocą nvm lub nave oraz określenie wersji węzła jako domyślnej.


1
Właśnie miałem to opublikować i przekonać się, że sam autor opublikował najlepszą możliwą odpowiedź na problem: użyj raz-węzła ponownie zainstaluj i nigdy nie będziesz oglądać się za siebie. Sprawiłem, że uderzyłem w ziemię i jestem gotowy na dalszy rozwój! Pozdrawiam tego @brockangelo!
Wallace Sidhrée

3
Ostrzeżenie ..... node-reinstallskrypt zawiera następujący wiersz: sudo rm -rf $HOME/{local,lib,include,node*,npm,.npm*} Jeśli więc zdarzy się, że niezależnie będziesz mieć katalog o tej nazwie w twoim $HOME(tak jak ja), zostanie zablokowany!
terrycojones

6

Oprócz głównej odpowiedzi potrzebowałem usunąć wszystkie wystąpienia npm znalezione w:

rm -rf /usr/local/share/man/man1/npm*

1
Powinien to być komentarz do właściwej odpowiedzi, a nie nowa odpowiedź.
Edward Anderson

5

Wystąpił problem podczas odinstalowywania Node.js na moim komputerze Mac. Miałem jakieś dziwne zachowanie, takie jak npmjest nadal, nawet po usunięciu go z tym wszystkim.

To dlatego, że miałem starą instalację wykonaną za pomocą Macport. Musisz także odinstalować go za pomocą portu:

sudo port uninstall nodejs

Być może zainstalował wiele różnych wersji Node.js, więc odinstaluj je wszystkie (jedna po drugiej).


1
Właśnie to mi się przydarzyło :-) dzięki za odpowiedź na uzupełnienie. Cóż, zacząłem mieć kilka wersji Cordova, a jeden npm nie mógł usunąć jednej Cordova i odwrotnie.
peter_the_oak

5

może musisz zrobić

hash -r 

pomaga przy problemie z dowiązaniem symbolicznym

$ node -v
$ bash: /opt/local/bin/node: No such file or directory


4

Najlepszym sposobem jest pobranie pakietu instalatora: .pkg na komputer Mac. Preferuj najnowszą stabilną wersję.

Oto link: Node.js

Ten pakiet ostatecznie zastąpi poprzednią wersję i odpowiednio ustawi zmienne środowiskowe. Wystarczy uruchomić instalator i zrobić to w ciągu kilku kliknięć.


3

Zainstalowałem Node.js ze źródła pobranego z repozytorium git. Zainstalowałem z:

./configure
$ make
$ sudo make install

Ponieważ plik make obsługuje go, mogę:

$ sudo make uninstall

Jak uruchomić to równolegle? powiedz, że chcę uruchomić 2 wersje?

3

Jako uzupełnienie odpowiedzi wyjaśniających czyszczenie i instalację za pomocą homebrew, odkryłem, że sam homebrew dostarczył wyraźnych wskazówek na temat konfliktów dowiązań symbolicznych.

Niestety zapewnia je jeden po drugim, gdy je napotyka, więc jest trochę pracochłonne, ale wydaje się, że odnajduje wszystkie starcia i był to jedyny sposób, aby uzyskać czystą instalację z Homebrew.

Zasadniczo proces jest następujący:

  1. użyj homebrew do odinstalowania węzła
  2. czysty domowy plew
  3. użyj homebrew, aby zainstalować węzeł i zanotuj każdy oznaczony plik kolizji
  4. usuń plik kolizji flagi (lub cały katalog, jeśli jest to katalog „węzła”)
  5. przejdź do kroku 1, aż uzyskasz czystą instalację

Schematycznie:

Oto zrzut ekranu z ostatnich kroków mojej instalacji - możesz zobaczyć, że powoduje czystą instalację (ostatecznie ...):

computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink share/systemtap/tapset/node.stp
Target /usr/local/share/systemtap/tapset/node.stp
already exists. You may want to remove it:
  rm '/usr/local/share/systemtap/tapset/node.stp'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/share/systemtap/tapset/node.stp
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/share/systemtap/tapset/node.stp'
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink lib/dtrace/node.d
Target /usr/local/lib/dtrace/node.d
already exists. You may want to remove it:
  rm '/usr/local/lib/dtrace/node.d'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/lib/dtrace/node.d'
computer1:DevResources user1$ 
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ node -v
v13.1.0

2

Przede wszystkim należy dezaktywować węzeł: (mac) po zainstalowaniu nowej wersji węzła.

nvm deactivate

Jest to usuwane /Users/user_name/.nvm/*/bin z $ PATH

A po tym węźle został zaktualizowany

node --version
v10.9.0

1

To naprawiło to dla mnie Naprawianie npm na Mac OS X dla użytkowników Homebrew . I nie wymaga zbyt wielu kroków.

Przejdź do części poświęconej rozwiązaniu, jeśli nie obchodzi Cię dlaczego.

Oto odpowiednia część dla wygody:

Rozwiązanie

To rozwiązanie naprawia błąd spowodowany próbą uruchomienia npm update npm -g. Gdy skończysz, nie będziesz musiał używać sudodo globalnej instalacji modułów npm.

Zanim zaczniesz, zanotuj wszystkie globalnie zainstalowane pakiety npm. W tych instrukcjach usuniesz wszystkie te pakiety. Po zakończeniu musisz je ponownie zainstalować.

Uruchom następujące polecenia, aby usunąć wszystkie istniejące globalne moduły npm, odinstaluj węzeł i npm, zainstaluj ponownie węzeł z poprawnymi ustawieniami domyślnymi, skonfiguruj lokalizację globalnych modułów npm do zainstalowania, a następnie zainstaluj npm jako własny pakiet.

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 | sh

Węzeł i npm powinny być poprawnie zainstalowane w tym miejscu. Ostatnim krokiem jest dodanie ~/.npm-packages/bindo twojego, PATHwięc npm i globalne pakiety npm są użyteczne. Aby to zrobić, dodaj następujący wiersz do ~/.bash_profile:

export PATH="$HOME/.npm-packages/bin:$PATH"

Teraz możesz bez problemu ponownie zainstalować wszystkie globalne pakiety NPM, których potrzebujesz.


4
W przypadku przepełnienia stosu odradzane są odpowiedzi zawierające tylko łącza.
Andrew Grimm,

@AndrewGrimm ma sens, skopiowałem odpowiednią część.
pcatre

1
Po wprowadzeniu następującego polecenia pojawia się następujący błąd: curl -L npmjs.com/install.sh | sh .... npm ERR! Pełny dziennik tego uruchomienia można znaleźć w: npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_34_337Z-debug.log npm ERR! kod E404 npm ERR! 404 nie znaleziono: 1.535s@latest npm ERR! Pełny dziennik tego uruchomienia można znaleźć w: npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_36_399Z-debug.log Nie powiodło się
Shoaib Ahmed

1

W moim przypadku żadna z pozostałych odpowiedzi nie zadziałała, ponieważ wcześniej obniżyłem wersję do node8. Zamiast robić powyższe, działało dla mnie:

which node

który wrócił /usr/local/bin/node@8zamiast/usr/local/bin/node

więc wykonałem to polecenie:

brew uninstall node@8

który działał, a następnie pobrał najnowszy pkg z oficjalnej strony i zainstalował. Następnie musiałem zamknąć terminal i zacząć od nowa, aby uzyskać dostęp do nowej wersji


1

Jeśli jesteś w stanie zlokalizować węzeł wystarczy uruchomić whereis nodei whereis npmi whereis nvmi można usunąć wymienione katalogi, ile potrzeba.

Musisz także całkowicie zamknąć terminal i otworzyć go ponownie, aby zmiany odniosły skutek.


0

@ lfender6445 odpowiedź działała dobrze dla mnie do odinstalowania

Teraz do ponownej instalacji miałem problemy z instalacją ostatniej wersji zamiast najbardziej stabilnej, więc aby zainstalować konkretną wersję węzła, powinieneś:

brew install node@10 // 10 is the version I want
brew link node@10

0

Docker - podejście alternatywne

Docker to rodzaj superszybkiej maszyny wirtualnej, za pomocą której można uruchamiać narzędzia takie jak node (zamiast tego instalować je bezpośrednio na Mac-OS). Korzyści z tego związane są następujące

  • wszystkie rzeczy (pliki węzłów „miliony”) są instalowane wewnątrz obrazu / kontenera dokera (są zamknięte w kilku plikach wewnętrznej dokowania)

  • możesz zmapować swój katalog mac z projektem do kontenera dokera i mieć dostęp do węzła - ale poza dokerem system mac-os nawet nie wie, że węzeł jest zainstalowany. Otrzymujesz więc „wirtualną” konsolę z dostępnymi poleceniami węzłów, które mogą działać na prawdziwych plikach

  • możesz łatwo zabić węzeł, znajdując go docker psi zabijającdocker rm -f name_or_num

  • możesz łatwo odinstalować obraz dokera / kontenery za pomocą jednego polecenia docker rmi ...i uzyskać wolne miejsce - i zainstalować go ponownie, uruchamiając skrypt (poniżej)

  • twój węzeł jest zamknięty w oknie dokowanym i nie ma dostępu do całego systemu - tylko do folderów do niego mapowanych

  • możesz uruchamiać usługi węzłów i łatwo zamapować je na port mac i mieć do nich dostęp z przeglądarki internetowej

  • możesz uruchomić wiele wersji węzłów jednocześnie

  • w podobny sposób możesz zainstalować inne narzędzia, takie jak (w wielu wersjach jednocześnie): php, bazy danych, redis itp. - wewnątrz dokera bez interakcji z systemem Mac-os (które w ogóle nie zauważają takiego oprogramowania). Np. Możesz uruchomić jednocześnie 3 mysql db z różnymi wersjami i 3 aplikacje php z inną wersją php ... - więc możesz mieć wiele narzędzi, ale czysty system

  • PRACA ZESPOŁOWA: takie środowisko można łatwo sklonować na inne maszyny (a nawet na systemy Windows / Linux - z pewnymi modyfikacjami) i zapewnić identyczne środowisko na poziomie dokera - dzięki czemu można łatwo skonfigurować i ponownie użyć skryptów / plików dokerów oraz środowiska konfiguracji dla nowy członek zespołu w bardzo szybki sposób (wystarczy zainstalować dokera i stworzyć podobną strukturę folderów i uzyskać kopię skryptów - to wszystko). Pracuję w ten sposób przez 2 lata z moim zespołem - i jesteśmy bardzo szczęśliwi

Instrukcja

  • Zainstaluj dokera, korzystając np. Z tej instrukcji

  • Przygotuj „specjalny” katalog do pracy, np. Mój katalog to /Users/kamil/work(będę dalej korzystać z tego katalogu - ale może być dowolny) - ten katalog będzie „interfejsem” między kontenerami dokerów i systemem plików Mac. Wewnątrz tego katalogu utwórz następującą strukturę katalogu:

    /Users/kamil/work/code - tutaj umieszczasz swoje projekty za pomocą kodu

    /Users/kamil/work/tools

    /Users/kamil/work/tools/docker-data - tutaj mapujemy dane wyjściowe kontenerów, takie jak logi (lub pliki bazy danych, jeśli ktoś spłaci db itp.)

    /Users/kamil/work/tools/docker

    /Users/kamil/work/tools/docker/node-cmd - tutaj umieszczamy skrypty węzła dokującego

  • wewnątrz toolsstwórz plik, .envktóry będzie zawierał w jednym miejscu ścieżki globalne używane w innych skryptach

  • Innside dir ../node-cmdutwórz plik dockerfileo następującej treści

  • innside dir ../node-cmdutwórz plik run-containero następującej treści (plik ten powinien być wykonywalny np. przez chmod +x run-container) - (zauważ, jak mapujemy porty i katalogi z zewnętrznego „świata” na wewnętrzny system plików dokera)

  • ok teraz możesz dodać jakiś projekt np. work/code/myProjecti dodać do niego następujący plik „run-cmd” (musi być wykonywalny)

  • następnie, jeśli uruchomisz powyżej skryptu (klikając dwukrotnie), zobaczysz konsolę z dostępnymi poleceniami węzła w katalogu projektu np npm install

  • aby uruchomić projekt w tle (np. niektóre serwice) np. uruchomić aplikację kątową-cli serwera WWW, możesz użyć następującego skryptu (o nazwie run-front-mus być wykonywalny) - (musisz również edytować /etc/hostsplik, aby dodać odpowiednią domenę)


-7

(serwer: ubuntu 14)

1.) zainstaluj nvm (menedżer wersji węzła) https://github.com/creationix/nvm

2.) Węzeł instalacji NVM

3.) npm -v (zapytaj npm wersja => 3.8.6)

4.) węzeł -v (zapytanie o wersję węzła => v6.0.0)

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.