¿Cómo desinstalo completamente Node.js y lo reinstalo desde el principio (Mac OS X)

1291

Mi versión del nodo siempre es v0.6.1-pre incluso después de instalar brew node y NVM install v0.6.19.

Mi versión de nodo es:

node -v
v0.6.1-pre

NVM dice esto (después de instalar una versión de nodo por primera vez en un terminal bash):

nvm ls
v0.6.19
current:    v0.6.19

Pero cuando reinicio bash, esto es lo que veo:

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

Entonces, ¿dónde está esta versión phantom node 0.6.1-pre y cómo puedo deshacerme de ella? Estoy tratando de instalar bibliotecas a través de NPM para poder trabajar en un proyecto.

Intenté usar BREW para actualizar antes de NVM, usando brew updatey brew install node. He intentado eliminar el directorio "nodo" en mi /usr/local/includey el "nodo" y "node_modules" en mi /usr/local/lib. Intenté desinstalar npm y reinstalarlo siguiendo estas instrucciones.

Todo esto porque estaba tratando de actualizar una versión anterior del nodo para instalar la biblioteca "zipstream". Ahora hay carpetas en mi directorio de usuarios, y la versión del nodo TODAVÍA no está actualizada, aunque NVM dice que está usando 0.6.19.

Idealmente, me gustaría desinstalar nodejs, npm y nvm, y simplemente reinstalar todo desde cero en mi sistema.

Dominic Tancredi
fuente
/ usr / bin / node es otro ...
Aaron Blenkush
1
Esto podría ayudar a quien instaló el nodo a través del archivo pkg. superuser.com/questions/36567/...
karthikeayan
Mac 10.13.5 tiene / Users / myusername / node_modules ¿también debería eliminar esta carpeta? He buscado en este hilo, pero nadie enfrentado a este problema parece
vikramvi
@Pacerier incluso después de seguir las instrucciones en gist, todavía existe nodo y npm en Mac OS 10.13.5
vikramvi

Respuestas:

1699

Aparentemente, había una /Users/myusername/localcarpeta que contenía un includecon nodey libcon nodey node_modules. Cómo y por qué se creó esto en lugar de en mi /usr/localcarpeta, no lo sé.

La eliminación de estas referencias locales solucionó el fantasma v0.6.1-pre. Si alguien tiene una explicación, la elegiré como la respuesta correcta.

EDITAR:

Es posible que también deba seguir las instrucciones adicionales:

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

que es el equivalente de (igual que el anterior) ...

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

o (igual que el anterior) desglosado ...

Para desinstalar completamente node + npm es hacer lo siguiente:

  1. vaya a / usr / local / lib y elimine cualquier nodo y node_modules
  2. vaya a / usr / local / include y elimine cualquier nodo y directorio node_modules
  3. si instaló con el nodo de instalación brew , ejecute el nodo de desinstalación brew en su terminal
  4. revise su directorio de inicio para cualquier local o lib o incluya carpetas, y elimine cualquier nodo o node_modules desde allí
  5. vaya a / usr / local / bin y elimine cualquier nodo ejecutable

También es posible que deba hacer:

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

Además, NVM modifica la variable PATH en $HOME/.bashrc, que debe revertirse manualmente .

Luego descargue nvm y siga las instrucciones para instalar el nodo. Las últimas versiones de node vienen con npm , creo, pero también puedes reinstalar eso también.

Dominic Tancredi
fuente
83
Yo también tuve que hacerlo rm -rf /Users/[homedir]/.npm.
brokenindexfinger
17
También es necesario eliminar/Users/[homedir]/.nvm
n0pe
42
También corrí brew doctory luego brew prunepara limpiar un montón de enlaces simbólicos rotos para NPM.
Chris Jacob
54
Creé un guión que ahora he probado en batalla. Gracias @DominicTancredi esto funciona muy bien! gist.github.com/brock/5b1b70590e1171c4ab54
brock
13
También he tenido que añadir: sudo rm -rf ~/.node-gyp. Lo había agregado con MacPorts antes de cambiar a la preparación.
JESii
519

Para los usuarios de cerveza, OSX :

Para eliminar:

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;

Instalar:

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

Puede ejecutar brew info nodepara obtener más detalles sobre las instalaciones de su nodo.


considere usar NVM en lugar de cerveza

NVM (administrador de versiones de nodo) es una solución portátil para administrar múltiples versiones de nodo

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

puede usar esto con AVN para cambiar automáticamente las versiones a medida que salta entre diferentes proyectos con diferentes dependencias de nodo.

lfender6445
fuente
2
¿Cómo configurar los env env para que el nodo y el npm estén disponibles después de dicha instalación?
Maxim V. Pavlov
13
Es posible que deba ejecutar brew con la --forcebandera para asegurarse de que se eliminen todas las versiones del nodo: $ brew uninstall --force node
magikMaker
-bash: /usr/local/bin/npm: No such file or directory¿Qué puedo hacer ahora?
ValRob
55
> "considere usar NVM en lugar de cerveza"; ¡Irónicamente, puedes instalar NVM con brew !; Gran consejo, gracias.
HankCa
2
Usar NVM ayudó.
coderpc
186

Sé que esta publicación está un poco anticuada, pero solo quería compartir los comandos que me funcionaron en la Terminal al eliminar 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.*

ACTUALIZAR: 23 SEP 2016


Si tienes miedo de ejecutar estos comandos ...

Gracias a jguixpor this quick tutorial.

Primero, cree un archivo intermedio:

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

Revise manualmente su archivo (ubicado en su Homecarpeta)

 ~/filelist.txt

Luego borre los archivos:

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

Para 10.10.5 y superior

Gracias Lenar Hoyt

Fuente de comentarios de Gist: gistcomment-1572198

Gist original: 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.*
DaveyJake
fuente
16
Whoa ... esto es aterrador. Al menos el primer "rm" no es un "rm -rf", que, si hay una línea en blanco en la salida de sbom, eliminaría todo / usr / local. Antes de hacer algo tan pesado, escudriña la salida de sbom y de dónde provienen todos estos directorios y asegúrate de saber exactamente lo que estás eliminando.
Don Hatch
16
Debo agregar ... si tienes un instinto de autoconservación saludable, debería ser extremadamente difícil para ti escribir o copiar y pegar ese segundo comando, que comienza con "sudo rm -rf /". Un estornudo, o el gato salta sobre tu teclado, y has destruido tu sistema de archivos.
Don Hatch
2
Es org.nodejs.node.pkg.bomen lugar de org.nodejs.pkg.bom.
Lenar Hoyt
1
@DonHatch copia la línea sin la primera letra para que comience udo..y luego anteponga santes de ejecutarla.
youurayy
1
El comando lsbom genera rutas relativas, por lo que el script intentaba eliminar las rutas que parecían /usr/local/./node/yada. Para eliminar el ./prefijo utilicé cortar filtro: 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
Timiscoding
142

En Mavericks lo instalo desde el nodo pkg (desde el sitio de nodejs) y lo desinstalo para poder reinstalarlo utilizando brew. Solo ejecuto 4 comandos en la terminal:

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

Si todavía hay una instalación de nodo, repita el paso 2. Después de todo está bien, instalo usando brew install node

Pedro Polonia
fuente
50
1 funcionó, pero 2 falla. "No existe ese barril: usr / local / Cellar / node"
PositiveGuy
Sí, esto es lo mejor si tienes Mavericks
Dicer
1
Lo intenté pero nuevamente obtengo el mismo error Error: El brew linkpaso no se completó con éxito
Chandni
Gracias, perfecto, excepto que tuve que agregar --force para preparar la desinstalación
Medhi
1
FYI: A partir de este escrito->brew prune Error: Calling 'brew prune' is disabled! Use 'brew cleanup --prune-prefix' instead.
Mike S.
33
  1. Primero:

    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. En resumen, la mejor manera (que he encontrado) para desinstalar completamente node + npm es hacer lo siguiente:

    ir /usr/local/liby eliminar cualquier nodo y node_modules

    cd /usr/local/lib
    
    sudo rm -rf node*
  3. ir /usr/local/includey eliminar cualquier directorio de nodo y nodo_módulos

    cd /usr/local/include
    
    sudo rm -rf node*
  4. si lo instaló brew install node, ejecute brew uninstall nodeen su terminal

    brew uninstall node
  5. revise su directorio de inicio para cualquier carpeta "local" o "lib" o "include", y elimine cualquier "nodo" o "node_modules" desde allí

    vaya a / usr / local / bin y elimine cualquier nodo ejecutable

    cd /usr/local/bin
    
    sudo rm -rf /usr/local/bin/npm
    
    ls -las
  6. Es posible que también deba seguir las instrucciones adicionales:

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

Fuente: tonyMtz

Johel Alvarez
fuente
77
Eliminar node*no es una forma particularmente segura de proceder. Puede haber otros binarios con ese prefijo.
Lenar Hoyt
2
Genial, finalmente después de 3 días, cuando de vez en cuando había problemas de npm, eliminar por completo y reinstalar usando brew en mi mac, funciona de maravilla.
Amit Bravo
Cuando se dispara primera orden de conseguir 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.ayuda por favor
Ahtesham Shah
Incluso después de hacer estos pasos en Mac 10.13.5, ¿aún puedo ver npm y node qué puede estar saliendo mal?
vikramvi
25

nodo de degradación a 0.10.36

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

actualizar nodo a estable v

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n stable
Anja Ishmukhametova
fuente
Acabo de hacer esto y, curiosamente, disminuyó npm de 6.4.1 a 6.2.0.
Capn Sparrow
22

No estoy seguro si es porque tenía una versión anterior (4.4.5), o si es porque usé el instalador oficial, pero la mayoría de los archivos a los que se hace referencia en otras respuestas no existían en mi sistema. Solo tuve que eliminar lo siguiente:

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

Decidí mantenerme ~/.npmporque estaba planeando reinstalar Node con Homebrew.

Big McLargeHuge
fuente
Esta respuesta se realizó en 2012, por lo que estoy seguro de que tiene algo de legado. Ahora, si aparecen nuevas respuestas, las votaré después de revisar si son efectivas.
Dominic Tancredi
15

He resumido las respuestas existentes y me aseguré de que el Nodo js esté COMPLETAMENTE BORRADO junto con 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

Líneas para copiar a la 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;
Dary
fuente
Seguí estos pasos y parece haber funcionado. Todavía tengo directorios en mi carpeta raíz como .node-gyp/, .npm/, .npm-global/, y .nvm/. ¿Puedo eliminarlos o debo conservarlos si planeo reinstalar el nodo?
WaterTrash
10
  • Eliminar nodo y / o node_modules de / usr / local / lib

          ex code:
          cd /usr/local/lib
          sudo rm -rf node
          sudo rm -rf node_modules
  • Elimine node y / o node_modules de / usr / local / include

  • Eliminar node, node-debug y node-gyp de / usr / local / bin
  • Elimine .npmrc de su directorio de inicio (esta es su configuración npm, no la elimine si planea reinstalar Node de inmediato)
  • Elimine .npm de su directorio personal
  • Elimine .node-gyp de su directorio personal
  • Elimine .node_repl_history de su directorio personal
  • Eliminar nodo * de / usr / local / share / man / man1 /
  • Eliminar npm * de / usr / local / share / man / man1 /
  • Eliminar node.d de / usr / local / lib / dtrace /
  • Eliminar nodo de / usr / local / opt / local / bin /
  • Eliminar nodo de / usr / local / opt / local / include /
  • Eliminar node_modules de / usr / local / opt / local / lib /
  • Eliminar nodo de / usr / local / share / doc /
  • Eliminar node.stp de / usr / local / share / systemtap / tapset /
Rajiv Singh
fuente
También tuve que eliminar node@6de/usr/local/opt/
echo
9

Trabajó para mi.

$node --version

v11.1.0

$nvm deactivate

$nvm uninstall v11.1.0
Inês Gomes
fuente
77
Pero solo si lo has nvminstalado.
Sebastian Dressler
@SebastianDressler Sí :-) brew install nvm. más información aquí stackabuse.com/how-to-uninstall-node-js-from-mac-osx
Inês Gomes
8

Después

brew uninstall node

Tenía que saber qué nodo

which node

luego quita eso

rm -rf /usr/local/bin/node
Hos Mercury
fuente
7

Si ya instaló nvm , ejecute los siguientes comandos

  • nvm deactivate - Esto eliminará /.nvm/*/bin de $ PATH
  • nvm list - Para enumerar todas las versiones de nodo instaladas en el sistema
  • nvm uninstall <version> en puede especificar todas las versiones que desea desinstalar.

Siempre es bueno que instale el nodo usando nvmy desinstale usando en nvm lugar de brew.

Esta solución funcionó para mí.

Comandos adicionales

  • which nodepara saber la ruta del nodo instalado en su sistema. Puede ejecutar este directorio para desinstalar el nodo manualmente. Entonces es posible que deba ajustar el archivo PATH en consecuencia.
Akhil Nadh PC
fuente
6

Ampliando la increíble respuesta de Dominic Tancredi , he incluido esto en un paquete bash y un script independiente. Si ya está utilizando el "Administrador de paquetes anteriores" llamado bpkg , puede instalar el script ejecutando:

bpkg install -g brock/node-reinstall

O puede echar un vistazo a la secuencia de comandos en Github en brock / node-reinstall . El script le permite reinstalar el nodo usando nvm o nave, y especificar una versión de nodo como predeterminada.

brock
fuente
1
Estaba a punto de publicar esto, y vi que el propio autor publicó la mejor respuesta posible al problema: use node-reinstall una vez y nunca mirará hacia atrás. ¡Me puse en marcha y listo para más desarrollo! Saludos para este @brockangelo!
Wallace Sidhrée
3
Advertencia ..... la node-reinstallsecuencia de comandos contiene esta línea: sudo rm -rf $HOME/{local,lib,include,node*,npm,.npm*} así que si tiene un directorio de ese nombre independientemente en su $HOME(como lo hago yo), ¡será golpeado!
terrycojones
6

Adicional a la respuesta principal, necesitaba eliminar todas las instancias de npm encontradas en:

rm -rf /usr/local/share/man/man1/npm*
Carlos Pérez Priego
fuente
1
Esto debería ser un comentario sobre la respuesta apropiada, no una nueva respuesta.
Edward Anderson el
5

He tenido un problema durante la desinstalación de Node.js en mi mac. Tuve un comportamiento extraño como npmsigue siendo incluso después de haberlo eliminado con todo esto.

Fue porque tenía una instalación anterior realizada con macport. Entonces también debes desinstalarlo usando el puerto:

sudo port uninstall nodejs

Es posible que haya instalado muchas versiones diferentes de Node.js, así que desinstálelas todas (una por una).

toutpt
fuente
1
Esto es exactamente lo que me sucedió :-) gracias por su respuesta al apéndice. Bueno, comencé a tener varias versiones de Cordova, y un npm no podía eliminar el Cordova y viceversa.
peter_the_oak
5

tal vez necesites hacer

hash -r 

ayuda con el problema del enlace simbólico

$ node -v
$ bash: /opt/local/bin/node: No such file or directory
golpe fuerte
fuente
4

Puede clonar https://github.com/brock/node-reinstall y ejecutar el comando simple como se indica en el repositorio. Después de eso, simplemente reinicie su sistema.
Este es el método más simple y también funcionó para mí.

oxy_js
fuente
4

La mejor manera es descargar un paquete de instalación: .pkg en mac. Prefiere la última versión estable.

Aquí está el enlace: Node.js

Este paquete finalmente sobrescribirá la versión anterior y establecerá las variables de entorno en consecuencia. Simplemente ejecute el instalador y listo con unos pocos clics.

vkrishna17
fuente
3

Había instalado Node.js desde la fuente descargada del repositorio git. Lo instalé con:

./configure
$ make
$ sudo make install

Debido a que el archivo make lo admite, puedo hacer:

$ sudo make uninstall
Dave Kuhlman
fuente
¿Cómo ejecutarlo en paralelo? decir que quiero ejecutar 2 versiones?
3

Como complemento de las respuestas que explican la limpieza e instalación a través de homebrew, descubrí que homebrew en sí mismo proporcionaba indicaciones claras de los conflictos de enlaces simbólicos.

Desafortunadamente, proporciona estos uno por uno a medida que los encuentra, por lo que es un poco laborioso, pero parece encontrar todos los enfrentamientos y fue la única forma en que pude obtener una instalación limpia con homebrew.

Esencialmente, el proceso es:

  1. use homebrew para desinstalar el nodo
  2. cerveza casera limpia
  3. use homebrew para instalar el nodo y observe cualquier archivo de conflicto marcado
  4. eliminar el archivo de conflicto de marcas (o todo el directorio si es un directorio 'nodo')
  5. vaya al paso 1 hasta que obtenga una instalación limpia

Esquemáticamente:

Aquí hay una salida de pantalla de los últimos pasos de mi instalación: puede ver que resulta en una instalación limpia (eventualmente ...):

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
Mick
fuente
2

En primer lugar, debe desactivar el nodo: (mac) después de instalar la nueva versión del nodo.

nvm deactivate

Esto se elimina /Users/user_name/.nvm/*/bin de $ PATH

Y después de que ese nodo fue actualizado

node --version
v10.9.0
Alexandr
fuente
1

Esto lo arregló para mí Reparar npm en Mac OS X para usuarios de Homebrew . Y no requiere demasiados pasos.

Simplemente vaya a la parte de la solución si no le importa el por qué.

Aquí está la parte relevante para mayor comodidad:

Solución

Esta solución corrige el error causado al intentar ejecutar npm update npm -g. Una vez que haya terminado, tampoco necesitará usar sudopara instalar módulos npm a nivel mundial.

Antes de comenzar, tome nota de los paquetes npm instalados globalmente. Estas instrucciones harán que elimines todos esos paquetes. Una vez que haya terminado, deberá volver a instalarlos.

Ejecute los siguientes comandos para eliminar todos los módulos npm globales existentes, desinstale node & npm, reinstale el nodo con los valores predeterminados correctos, configure la ubicación para instalar los módulos npm globales y luego instale npm como su propio paquete.

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 y npm deben instalarse correctamente en este punto. El último paso es agregar ~/.npm-packages/bina sus PATHpaquetes npm y globales npm que se puedan usar. Para hacer esto, agregue la siguiente línea a su ~/.bash_profile:

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

Ahora puede reinstalar cualquier paquete npm global que necesite sin ningún problema.

pcatre
fuente
44
Las respuestas de solo enlace no se recomiendan en Stack Overflow.
Andrew Grimm
@AndrewGrimm tiene sentido, copié la parte relevante.
pcatre
1
Después de poner el siguiente comando obtengo el siguiente error: curl -L npmjs.com/install.sh | sh .... npm ERR! Puede encontrar un registro completo de esta ejecución en: npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_34_337Z-debug.log npm ERR! código E404 npm ERR! 404 no encontrado: 1.535s@latest npm ERR! Puede encontrar un registro completo de esta ejecución en: npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_36_399Z-debug.log Falló
Shoaib Ahmed
1

En mi caso, ninguna de las otras respuestas funcionó porque anteriormente bajé a node8. Entonces, en lugar de hacer lo anterior, lo siguiente funcionó para mí:

which node

que regresó en /usr/local/bin/node@8lugar de/usr/local/bin/node

entonces ejecuté este comando:

brew uninstall node@8

que funcionó y luego descargó el último paquete del sitio oficial y lo instaló. Después de eso tuve que cerrar mi terminal y comenzar de nuevo para acceder a la nueva versión

Raza Ahmed
fuente
1

Si no es capaz de localizar el nodo simplemente correr whereis nodey whereis npm, y whereis nvm, y puede eliminar los directorios listados, según sea necesario.

También deberá cerrar por completo su terminal y volver a abrirlo para que los cambios surtan efecto.

Andrómeda
fuente
1

Docker - enfoque alternativo

Docker es una especie de máquina virtual súper rápida que se puede usar para ejecutar herramientas como el nodo (en lugar de instalarlas directamente en mac-os). Las ventajas de hacerlo son las siguientes

  • todas las cosas (archivos de nodo 'millones') se instalan dentro de la imagen / contenedor de la ventana acoplable (se encapsulan en unos pocos archivos internos de la ventana acoplable)

  • puede asignar su directorio mac con proyecto a su contenedor docker y tener acceso al nodo, pero fuera de docker, el sistema mac-os ni siquiera sabe que ese nodo está instalado. Entonces obtienes algún tipo de consola 'virtual' con comandos de nodo disponibles que pueden funcionar en archivos reales

  • puede matar fácilmente el nodo al encontrarlo docker psy matarlodocker rm -f name_or_num

  • puede desinstalar fácilmente las imágenes / contenedores de la ventana acoplable con un comando docker rmi ...y obtener espacio libre, e instalarlo nuevamente ejecutando script (a continuación)

  • su nodo está encapsulado dentro de la ventana acoplable y no tiene acceso a todo el sistema, solo a las carpetas que le asigna

  • puede ejecutar servicios de nodo y asignarlos fácilmente al puerto mac y tener acceso a él desde el navegador web

  • puede ejecutar muchas versiones de nodos al mismo tiempo

  • de manera similar, puede instalar otras herramientas como (en muchas versiones al mismo tiempo): php, bases de datos, redis, etc., dentro de la ventana acoplable sin interacción con mac-os (que no notan dicho software en absoluto). Por ejemplo, puede ejecutar al mismo tiempo 3 mysql db con diferentes versiones y 3 aplicaciones php con diferentes versiones de php ... - para que pueda tener muchas herramientas pero sistema limpio

  • TRABAJO EN EQUIPO: dicho entorno se puede clonar fácilmente en otras máquinas (e incluso en sistemas Windows / Linux, con algunas modificaciones) y proporcionar un entorno de nivel de acoplador idéntico, por lo que puede configurar y reutilizar fácilmente sus scripts / dockerfiles y configurar el entorno para nuevo miembro del equipo de manera muy rápida (solo necesita instalar docker y crear una estructura de carpetas similar y obtener una copia de los scripts, eso es todo). Trabajo de esta manera durante 2 años y con mi equipo, y estamos muy contentos.

Instrucción

  • Instale docker usando, por ejemplo, estas instrucciones

  • Prepare el directorio 'especial' para el trabajo, por ejemplo, mi directorio es /Users/kamil/work(usaré este directorio más adelante, pero puede ser arbitrario): este directorio será la 'interfaz' entre los contenedores docker y el sistema operativo de su archivo mac. Dentro de este directorio, cree la siguiente estructura de directorio:

    /Users/kamil/work/code - aquí pones tus proyectos con código

    /Users/kamil/work/tools

    /Users/kamil/work/tools/docker-data - aquí asignamos datos de salida de contenedores como registros (o archivos de base de datos si alguien usa db, etc.)

    /Users/kamil/work/tools/docker

    /Users/kamil/work/tools/docker/node-cmd - aquí ponemos scripts de nodo docker

  • dentro del toolsarchivo de creación .envque contendrá en un lugar las rutas globales utilizadas en otros scripts

  • directorio interno ../node-cmdcrea un archivo dockerfilecon el siguiente contenido

  • ../node-cmdarchivo de creación de directorio interno run-containercon el siguiente contenido (este archivo debe ser ejecutable, por ejemplo, por chmod +x run-container) - (observe cómo mapeamos los puertos y directorios desde el 'mundo' externo al sistema de archivos interno del acoplador)

  • ok, ahora puede agregar algún proyecto, por ejemplo, work/code/myProjecty agregarlo al siguiente archivo 'run-cmd' (debe ser ejecutable)

  • luego, si ejecuta el script anterior (haciendo doble clic), verá la consola con los comandos de nodo disponibles en el directorio del proyecto, por ejemplo npm install

  • para ejecutar el proyecto en segundo plano (por ejemplo, algunos servicios), por ejemplo, ejecutar la aplicación angular-cli del servidor web, puede usar el siguiente script (llamado run-front-debe ser ejecutable) - (también debe editar el /etc/hostsarchivo para agregar el dominio adecuado)

Kamil Kiełczewski
fuente
0

La respuesta de @ lfender6445 funcionó bien para desinstalar

Ahora, para volver a instalar, tuve problemas para instalar la última versión en lugar de la más estable, por lo que para instalar una versión de nodo específica debe hacer:

brew install node@10 // 10 is the version I want
brew link node@10
Lucas Andrade
fuente
-7

(servidor: ubuntu 14)

1.) instale nvm (administrador de versiones de nodo) https://github.com/creationix/nvm

2.) nodo de instalación de nvm

3.) npm -v (consultar versión npm => 3.8.6)

4.) nodo -v (preguntar versión del nodo => v6.0.0)

aze
fuente