Comment désinstaller complètement Node.js et réinstaller depuis le début (Mac OS X)


1291

Ma version de node est toujours v0.6.1-pre même après l'installation du node brew et de l'installation de NVM v0.6.19.

Ma version de nœud est:

node -v
v0.6.1-pre

NVM dit ceci (après avoir installé une version de node pour la première fois dans un terminal bash):

nvm ls
v0.6.19
current:    v0.6.19

Mais quand je redémarre bash, voici ce que je vois:

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

Alors, où est cette version pré-nœud fantôme 0.6.1 et comment puis-je m'en débarrasser? J'essaie d'installer des bibliothèques via NPM pour pouvoir travailler sur un projet.

J'ai essayé d'utiliser BREW pour mettre à jour avant NVM, en utilisant brew updateet brew install node. J'ai essayé de supprimer le répertoire "node" dans my /usr/local/includeet les "node" et "node_modules" dans my /usr/local/lib. J'ai essayé de désinstaller npm et de le réinstaller en suivant ces instructions.

Tout cela parce que j'essayais de mettre à jour une ancienne version de node pour installer la bibliothèque "zipstream". Maintenant, il y a des dossiers dans mon répertoire d'utilisateurs, et la version du nœud STILL n'est pas à jour, même si NVM dit qu'il utilise 0.6.19.

Idéalement, je voudrais désinstaller nodejs, npm et nvm, et réinstaller simplement le tout à partir de zéro sur mon système.



/ usr / bin / node en est un autre ...
Aaron Blenkush

1
cela pourrait aider celui qui a installé le nœud via le fichier pkg. superuser.com/questions/36567/…
karthikeayan

Mac 10.13.5 a obtenu / Users / myusername / node_modules dois-je également supprimer ce dossier? J'ai cherché dans ce fil mais personne n'a rencontré ce problème semble
vikramvi

@Pacerier même après avoir suivi les instructions dans gist, still node et npm existe sur Mac OS 10.13.5
vikramvi

Réponses:


1699

Apparemment, il y avait un /Users/myusername/localdossier contenant un includeavec nodeet libavec nodeet node_modules. Comment et pourquoi cela a été créé au lieu de dans mon /usr/localdossier, je ne sais pas.

La suppression de ces références locales a corrigé le fantôme v0.6.1-pre. Si quelqu'un a une explication, je choisirai cela comme la bonne réponse.

ÉDITER:

Vous devrez peut-être également suivre les instructions supplémentaires:

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

qui est l'équivalent de (comme ci-dessus) ...

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

ou (comme ci-dessus) en panne ...

Pour désinstaller complètement node + npm, procédez comme suit:

  1. allez dans / usr / local / lib et supprimez tous les nœuds et nœuds_modules
  2. allez dans / usr / local / include et supprimez tout noeud et répertoire node_modules
  3. si vous avez installé avec le nœud d'installation de brew , exécutez le nœud de désinstallation de brew dans votre terminal
  4. vérifiez votre répertoire personnel pour tout dossier local ou lib ou inclure , et supprimez tout nœud ou node_modules à partir de là
  5. allez dans / usr / local / bin et supprimez tout exécutable de nœud

Vous devrez peut-être également faire:

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

De plus, NVM modifie la variable PATH dans $HOME/.bashrc, qui doit être annulée manuellement .

Téléchargez ensuite nvm et suivez les instructions pour installer le nœud. Les dernières versions de node sont livrées avec npm , je pense, mais vous pouvez également réinstaller cela.


83
Je devais aussi le faire rm -rf /Users/[homedir]/.npm.
brokenindexfinger

17
Également nécessaire pour supprimer/Users/[homedir]/.nvm
n0pe

42
J'ai également couru brew doctor, puis brew prunepour nettoyer un tas de liens symboliques cassés pour NPM.
Chris Jacob

54
J'ai créé un script que j'ai testé au combat. Merci @DominicTancredi cela fonctionne très bien! gist.github.com/brock/5b1b70590e1171c4ab54
brock

13
Je devais aussi ajouter: sudo rm -rf ~/.node-gyp. Je l'avais ajouté avec MacPorts avant de passer au brassage.
JESii

519

Pour les utilisateurs de brew, OSX :

Ôter:

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;

À installer:

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

Vous pouvez exécuter brew info nodepour plus de détails concernant vos installations de nœuds.


envisager d'utiliser NVM au lieu de brasser

NVM (node ​​version manager) est une solution portable pour gérer plusieurs versions de nœud

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

vous pouvez l'utiliser avec AVN pour changer automatiquement de version lorsque vous sautez entre différents projets avec différentes dépendances de nœud.


2
Comment définir les vars env pour que le nœud et npm soient disponibles après une telle installation?
Maxim V. Pavlov

13
Vous devrez peut-être exécuter brew avec le --forcedrapeau pour vous assurer que toutes les versions du nœud sont supprimées: $ brew uninstall --force node
magikMaker

-bash: /usr/local/bin/npm: No such file or directoryque puis-je faire maintenant?
ValRob

5
> "envisager d'utiliser NVM au lieu de brasser"; Ironiquement, vous pouvez installer NVM avec brew !; Excellent conseil, merci.
HankCa

2
L'utilisation de NVM a aidé.
coderpc

186

Je sais que ce message est un peu daté mais je voulais juste partager les commandes qui ont fonctionné pour moi dans Terminal lors de la suppression de 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.*

MISE À JOUR: 23 SEP 2016


Si vous avez peur d'exécuter ces commandes ...

Merci jguixpour this quick tutorial.

Créez d'abord un fichier intermédiaire:

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

Examiner manuellement votre fichier (situé dans votre Homedossier)

 ~/filelist.txt

Supprimez ensuite les fichiers:

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.*

Pour 10.10.5 et plus

Merci Lenar Hoyt

Gist Commentaire Source: gistcomment-1572198

Original Gist: 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.*

16
Whoa-- c'est terrifiant. Au moins, le premier "rm" n'est pas un "rm -rf" qui, s'il y a une ligne vierge sur la sortie de sbom, supprimerait tout / usr / local. Avant de faire quelque chose d'aussi lourd, examinez la sortie sbom et d'où proviennent tous ces répertoires et assurez-vous de savoir exactement ce que vous supprimez.
Don Hatch

16
Je devrais ajouter ... si vous avez un instinct de conservation sain, il devrait être extrêmement difficile pour vous de taper ou de copier-coller cette deuxième commande, qui commence par "sudo rm -rf /", du tout. Un éternuement, ou le chat saute sur votre clavier, et vous avez détruit votre système de fichiers.
Don Hatch, le

2
C'est au org.nodejs.node.pkg.bomlieu de org.nodejs.pkg.bom.
Lenar Hoyt

1
@DonHatch copiez la ligne sans la première lettre pour qu'elle commence par udo..puis ajoutez-la savant de l'exécuter.
youurayy

1
La commande lsbom génère des chemins relatifs, de sorte que le script essayait de supprimer les chemins qui ressemblaient /usr/local/./node/yada. Pour supprimer le ./préfixe, j'ai utilisé le filtre de coupure: 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
timiscodage le

142

Sur Mavericks, je l'installe à partir du pack de nœuds (du site nodejs) et je le désinstalle pour pouvoir le réinstaller à l'aide de brew. Je n'exécute que 4 commandes dans le terminal:

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

S'il y a toujours une installation de nœud, répétez l'étape 2. Après tout est ok, j'installe en utilisant brew install node


50
1 a fonctionné, mais 2 échoue. J'obtiens "aucun tel baril: usr / local / Cave / nœud"
PositiveGuy

Oui, c'est le meilleur si vous utilisez Mavericks
Dicer

1
Je l'ai essayé mais j'obtiens à nouveau la même erreur Erreur: l' brew linkétape n'a pas réussi
Chandni

Merci, parfait sauf que je devais ajouter - force de désinstaller le brassage
Medhi

1
FYI: Au moment d'écrire ces lignes -->brew prune Error: Calling 'brew prune' is disabled! Use 'brew cleanup --prune-prefix' instead.
Mike S.

33
  1. Première:

    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. Pour récapituler, la meilleure façon (que j'ai trouvée) de désinstaller complètement node + npm est de procéder comme suit:

    aller /usr/local/libet supprimer n'importe quel nœud et node_modules

    cd /usr/local/lib
    
    sudo rm -rf node*
  3. allez dans /usr/local/includeet supprimez n'importe quel noeud et répertoire node_modules

    cd /usr/local/include
    
    sudo rm -rf node*
  4. si vous avez installé avec brew install node, puis exécutez brew uninstall nodedans votre terminal

    brew uninstall node
  5. vérifiez votre répertoire personnel pour tout dossier "local" ou "lib" ou "include", et supprimez-y "node" ou "node_modules"

    allez dans / usr / local / bin et supprimez tout exécutable de nœud

    cd /usr/local/bin
    
    sudo rm -rf /usr/local/bin/npm
    
    ls -las
  6. Vous devrez peut-être également suivre les instructions supplémentaires:

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

Source: tonyMtz


7
La suppression node*n'est pas un moyen particulièrement sûr de procéder. Il peut y avoir d'autres binaires avec ce préfixe.
Lenar Hoyt

2
Génial, enfin après 3 jours, quand de temps en temps il y avait des problèmes de npm, supprimés complètement et réinstallant en utilisant brew sur mon mac, cela fonctionne comme un charme.
Amit Bravo

Lorsque le premier commandement est renvoyé, 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.veuillez aider
Ahtesham Shah

Même après avoir effectué ces étapes sur Mac 10.13.5, je pouvais toujours voir npm et node ce qui pouvait mal se passer?
vikramvi

25

rétrograder le nœud à 0.10.36

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

mettre à niveau le nœud vers stable v

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

Je viens de le faire et, curieusement, il a rétrogradé le npm de 6.4.1 à 6.2.0.
Capn Sparrow

22

Je ne sais pas si c'est parce que j'avais une ancienne version (4.4.5), ou si c'est parce que j'ai utilisé l'installateur officiel, mais la plupart des fichiers référencés dans d'autres réponses n'existaient pas sur mon système. Je n'ai eu qu'à supprimer les éléments suivants:

~/.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

J'ai décidé de garder ~/.npmcar je prévoyais de réinstaller Node avec Homebrew.


Cette réponse a été faite en 2012, donc je suis sûr qu'elle a un certain héritage. Maintenant, si de nouvelles réponses apparaissent, je les vote positivement après avoir vérifié si elles sont efficaces.
Dominic Tancredi

15

J'ai résumé les réponses existantes et je me suis assuré que Node js est COMPLÈTEMENT EFFACÉ avec 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

Lignes à copier sur le terminal:

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;

J'ai suivi ces étapes et cela semble avoir fonctionné. J'ai encore des répertoires dans mon dossier racine comme .node-gyp/, .npm/, .npm-global/et .nvm/. Puis-je les supprimer ou dois-je les conserver si je prévois de réinstaller le nœud?
WaterTrash

10
  • Supprimez le nœud et / ou les modules de nœuds de / usr / local / lib

          ex code:
          cd /usr/local/lib
          sudo rm -rf node
          sudo rm -rf node_modules
  • Supprimer le nœud et / ou les modules de nœuds de / usr / local / include

  • Supprimer le noeud, le noeud-débogage et le noeud-gyp de / usr / local / bin
  • Supprimez .npmrc de votre répertoire personnel (ce sont vos paramètres npm, ne le supprimez pas si vous prévoyez de réinstaller Node immédiatement)
  • Supprimer .npm de votre répertoire personnel
  • Supprimez .node-gyp de votre répertoire personnel
  • Supprimez .node_repl_history de votre répertoire personnel
  • Supprimer le nœud * de / usr / local / share / man / man1 /
  • Supprimer npm * de / usr / local / share / man / man1 /
  • Supprimez node.d de / usr / local / lib / dtrace /
  • Supprimer le nœud de / usr / local / opt / local / bin /
  • Supprimer le nœud de / usr / local / opt / local / include /
  • Supprimez les modules de nœuds de / usr / local / opt / local / lib /
  • Supprimer le nœud de / usr / local / share / doc /
  • Supprimer node.stp de / usr / local / share / systemtap / tapset /

Je devais aussi retirer node@6de/usr/local/opt/
echo


8

Après

brew uninstall node

Je devais savoir quel noeud

which node

puis supprimez cela

rm -rf /usr/local/bin/node

7

Si vous avez déjà installé nvm, exécutez les commandes suivantes

  • nvm deactivate - Cela supprimera /.nvm/*/bin de $ PATH
  • nvm list - Pour lister toutes les versions de noeud installées dans le système
  • nvm uninstall <version> dans vous pouvez spécifier toutes les versions que vous souhaitez désinstaller.

Il est toujours bon d'installer le nœud en utilisant nvmet de désinstaller en utilisant nvm plutôt que brew.

Cette solution a fonctionné pour moi.

Commandes supplémentaires

  • which nodepour connaître le chemin du nœud installé dans votre système. Vous pouvez rm ce répertoire pour désinstaller le nœud manuellement. Ensuite, vous devrez peut-être ajuster le fichier PATH en conséquence.

6

En développant la réponse impressionnante de Dominic Tancredi , j'ai roulé cela dans un package bash et un script autonome. Si vous utilisez déjà le "Back Package Manager" appelé bpkg, vous pouvez installer le script en exécutant:

bpkg install -g brock/node-reinstall

Ou vous pouvez jeter un œil au script sur Github à brock / node-réinstallation . Le script vous permet de réinstaller le nœud à l'aide de nvm ou de nave et de spécifier une version de nœud comme valeur par défaut.


1
J'étais sur le point de poster ceci et de voir que l'auteur lui-même a publié la meilleure réponse possible au problème: utilisez node-réinstallation une fois et vous ne regarderez jamais en arrière. Je me suis mis à courir et prêt pour plus de développement! Bravo pour ce @brockangelo!
Wallace Sidhrée

3
Attention ..... le node-reinstallscript contient cette ligne: sudo rm -rf $HOME/{local,lib,include,node*,npm,.npm*} Donc, s'il vous arrive d'avoir indépendamment un répertoire de ce nom dans votre $HOME(comme moi), ça va être bouleversé!
terrycojones

6

En plus de la réponse principale, j'avais besoin de supprimer toutes les instances de npm trouvées dans:

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

1
Cela devrait être un commentaire sur la réponse appropriée, pas une nouvelle réponse.
Edward Anderson

5

J'ai rencontré un problème lors de la désinstallation de Node.js sur mon Mac. J'ai eu un comportement étrange comme npmsi c'était toujours le leur même après l'avoir retiré avec tout cela.

C'est parce que j'avais fait une ancienne installation avec macport. Vous devez donc également le désinstaller à l'aide du port:

sudo port uninstall nodejs

Il peut avoir installé de nombreuses versions différentes de Node.js, alors désinstallez-les toutes (une par une).


1
C'est exactement ce qui m'est arrivé :-) merci pour votre réponse à l'addendum. Eh bien, j'ai commencé à avoir plusieurs versions de Cordova, et un npm ne pouvait pas supprimer celui de Cordova et vice versa.
peter_the_oak

5

peut-être que vous devez faire

hash -r 

ça aide avec le problème du lien symbolique

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

4

Vous pouvez cloner https://github.com/brock/node-reinstall et exécuter la commande simple comme indiqué dans le référentiel.Après cela, redémarrez simplement votre système.
C'est la méthode la plus simple et elle a également fonctionné pour moi.


4

La meilleure façon est de télécharger un package d'installation: .pkg sur mac. Préférez la dernière version stable.

Voici le lien: Node.js

Ce package remplacera éventuellement la version précédente et définira les variables d'environnement en conséquence. Exécutez simplement le programme d'installation et son fait en quelques clics.


3

J'avais installé Node.js à partir de la source téléchargée depuis le référentiel git. J'ai installé avec:

./configure
$ make
$ sudo make install

Parce que le fichier make le prend en charge, je peux faire:

$ sudo make uninstall

Comment l'exécuter en parallèle? dis que je veux exécuter 2 versions?

3

En tant que compagnon des réponses expliquant le nettoyage et l'installation via homebrew, j'ai trouvé que homebrew lui-même fournissait des indications claires des conflits de liens symboliques.

Malheureusement, il les fournit un par un au fur et à mesure qu'ils les rencontrent, donc c'est un peu laborieux, mais il semble trouver tous les conflits et c'était le seul moyen pour que je puisse obtenir une installation propre avec homebrew.

Essentiellement, le processus est le suivant:

  1. utiliser homebrew pour désinstaller le nœud
  2. homebrew propre
  3. utiliser homebrew pour installer le nœud et noter tout fichier de conflit signalé
  4. supprimer le fichier de conflit d'indicateur (ou le répertoire entier s'il s'agit d'un répertoire «nœud»)
  5. passez à l'étape 1 jusqu'à ce que vous obteniez une installation propre

Schématiquement:

Voici une sortie d'écran des dernières étapes de mon installation - vous pouvez voir qu'elle se traduit par une installation propre (éventuellement ...):

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

Tout d'abord, vous devez désactiver le nœud: (mac) après avoir installé la nouvelle version du nœud.

nvm deactivate

Ceci est supprimé /Users/user_name/.nvm/*/bin de $ PATH

Et après la mise à jour de ce nœud

node --version
v10.9.0

1

Cela m'a corrigé. Correction de npm sur Mac OS X pour les utilisateurs Homebrew . Et cela ne nécessite pas trop d'étapes.

Allez simplement à la partie solution si vous ne vous souciez pas du pourquoi.

Voici la partie pertinente pour plus de commodité:

Solution

Cette solution corrige l'erreur provoquée par la tentative d'exécution npm update npm -g. Une fois que vous avez terminé, vous n'aurez pas non plus besoin d'utiliser sudopour installer les modules npm à l'échelle mondiale.

Avant de commencer, notez tous les packages npm installés dans le monde. Ces instructions vous demanderont de supprimer tous ces packages. Une fois que vous avez terminé, vous devrez les réinstaller.

Exécutez les commandes suivantes pour supprimer tous les modules npm globaux existants, désinstaller node & npm, réinstaller node avec les valeurs par défaut correctes, configurer l'emplacement des modules npm globaux à installer, puis installer npm comme son propre paquetage.

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

Node et npm doivent être correctement installés à ce stade. La dernière étape consiste à ajouter ~/.npm-packages/binà vos PATHpackages si npm et npm global sont utilisables. Pour ce faire, ajoutez la ligne suivante à votre ~/.bash_profile:

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

Vous pouvez maintenant réinstaller tous les packages npm globaux dont vous avez besoin sans aucun problème.


4
Les réponses de lien uniquement sont déconseillées sur Stack Overflow.
Andrew Grimm

@AndrewGrimm est logique, j'ai copié la partie pertinente.
pcatre

1
Après avoir mis la commande suivante, j'obtiens l' erreur suivante: curl -L npmjs.com/install.sh | sh .... npm ERR! Un journal complet de cette course peut être trouvé dans: npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_34_337Z-debug.log npm ERR! code E404 npm ERR! 404 Introuvable: 1.535s@latest npm ERR! Un journal complet de cette course peut être trouvé dans: npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_36_399Z-debug.log Cela a échoué
Shoaib Ahmed

1

Dans mon cas, aucune des autres réponses n'a fonctionné car j'ai précédemment rétrogradé à node8. Donc, au lieu de faire ci-dessus, ce qui suit a fonctionné pour moi:

which node

qui est revenu /usr/local/bin/node@8au lieu de/usr/local/bin/node

j'ai donc exécuté cette commande:

brew uninstall node@8

qui a fonctionné puis téléchargé le dernier pkg du site officiel et installé. Après cela, j'ai dû fermer mon terminal et recommencer pour accéder à la nouvelle version


1

Si vous ne parvenez pas à localiser le nœud, exécutez simplement whereis nodeet whereis npmet whereis nvmet vous pouvez supprimer les répertoires répertoriés si nécessaire.

Vous devrez également fermer entièrement votre terminal et le rouvrir pour que les modifications prennent effet.


1

Docker - approche alternative

Docker est une sorte de machine virtuelle ultra-rapide qui peut être utilisée pour exécuter des outils comme node (au lieu de les installer directement sur mac-os). Les avantages à le faire sont les suivants

  • toutes les choses (fichiers de nœuds «milions») sont installées dans l'image / le conteneur Docker (elles sont encapsulées dans quelques fichiers Docker internes)

  • vous pouvez mapper votre répertoire mac avec project sur votre conteneur docker et avoir accès au nœud - mais en dehors de docker, le système mac-os ne sait même pas que le nœud est installé. Vous obtenez donc une sorte de console «virtuelle» avec des commandes de nœud disponibles qui peuvent fonctionner sur de vrais fichiers

  • vous pouvez facilement tuer le nœud en le trouvant par docker pset en le tuant pardocker rm -f name_or_num

  • vous pouvez facilement désinstaller l'image / les conteneurs docker par une seule commande docker rmi ...et obtenir de l'espace libre - et l'installer à nouveau par un script d'exécution (ci-dessous)

  • votre nœud est encapsulé dans le docker et n'a pas accès à l'ensemble du système - uniquement aux dossiers que vous y mappez

  • vous pouvez exécuter des services de nœuds et mapper facilement leur port sur le port mac et y accéder à partir du navigateur Web

  • vous pouvez exécuter plusieurs versions de nœuds en même temps

  • de la même manière, vous pouvez installer d'autres outils comme (dans de nombreuses versions en même temps): php, bases de données, redis, etc. - à l'intérieur de docker sans aucune interaction avec mac-os (qui ne remarque pas du tout de tels logiciels). Par exemple, vous pouvez exécuter en même temps 3 mysql db avec différentes versions et 3 php application avec différentes versions de php ... - vous pouvez donc avoir de nombreux outils mais un système propre

  • TRAVAIL D'ÉQUIPE: un tel environnement peut être facilement cloné dans d'autres machines (et même sur des systèmes Windows / Linux - avec quelques modifications) et fournir un environnement de niveau Docker identique - de sorte que vous pouvez facilement configurer et réutiliser vos scripts / fichiers Dockerfiles, et configurer l'environnement pour nouveau membre de l'équipe de manière très rapide (il suffit d'installer Docker et de créer une structure de dossiers similaire et d'obtenir une copie des scripts - c'est tout). Je travaille de cette façon depuis 2 ans et avec mon équipe - et nous sommes très heureux

Instruction

  • Installez docker en utilisant par exemple ces instructions

  • Préparer le répertoire «spécial» pour le travail, par exemple mon répertoire est /Users/kamil/work (je vais utiliser ce répertoire plus loin - mais il peut être arbitraire) - ce répertoire sera «interface» entre les conteneurs docker et votre ststem de fichier mac. Dans ce répertoire, créez la structure de répertoire suivante:

    /Users/kamil/work/code - ici vous mettez vos projets avec du code

    /Users/kamil/work/tools

    /Users/kamil/work/tools/docker-data - ici, nous cartographions les données de sortie des conteneurs comme les journaux (ou les fichiers de base de données si quelqu'un ouse db, etc.)

    /Users/kamil/work/tools/docker

    /Users/kamil/work/tools/docker/node-cmd - ici, nous mettons des scripts de noeud docker

  • toolscréer un fichier à l' intérieur .envqui contiendra en un seul endroit les chemins globaux utilisés dans d'autres scripts

  • innside dir ../node-cmdcreate file dockerfilewith following content

  • innside dir ../node-cmdcréer un fichier run-containeravec le contenu suivant (ce fichier doit être exécutable par exemple par chmod +x run-container) - (remarquez comment nous mappons les ports et les répertoires pour former un «monde» externe au système de fichiers docker interne)

  • ok maintenant vous pouvez ajouter un projet par exemple work/code/myProjectet y ajouter le fichier suivant 'run-cmd' (doit être exécutable)

  • puis si vous exécutez le script ci-dessus (en double-cliquant), vous verrez la console avec les commandes de noeud disponibles dans le répertoire du projet, par exemple npm install

  • pour exécuter le projet en arrière-plan (par exemple, certains services), par exemple, exécuter l'application angular-cli du serveur Web, vous pouvez utiliser le script suivant (nommé run-front-doit être exécutable) - (vous devez également modifier le /etc/hostsfichier pour ajouter le domaine approprié)


0

@ lfender6445 réponse a très bien fonctionné pour moi de désinstaller

Maintenant, pour réinstaller, j'ai eu des problèmes pour installer la dernière version au lieu de la plus stable, donc pour installer une version de nœud spécifique, vous devez faire:

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

-7

(serveur: ubuntu 14)

1.) installez nvm (gestionnaire de version de noeud) https://github.com/creationix/nvm

2.) nœud d'installation nvm

3.) npm -v (se renseigner sur la version npm => 3.8.6)

4.) noeud -v (demander la version du noeud => v6.0.0)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.