Cli: [ERROR] `npm install -g npm` elimina el comando` npm`

Creado en 18 dic. 2019  ·  19Comentarios  ·  Fuente: npm/cli

Qué? Por qué

npm comando npm install -g npm .

Cuando



  • 18/12/2019

  • No puedo recordar exactamente cuándo logré ejecutar este comando, pero al menos hace una semana.

Dónde



  • npm / cli

Cómo

Comportamiento actual


Este es el registro:

~
% brew install node
==> Downloading https://homebrew.bintray.com/bottles/node-13.3.0_1.catalina.bottle.tar.gz
Already downloaded: /Users/manabu/Library/Caches/Homebrew/downloads/8a482358c0487b3ffeeebf4d1f3b3ca825018f6318ecdd6368fd0a6f45e0bea1--node-13.3.0_1.catalina.bottle.tar.gz
==> Pouring node-13.3.0_1.catalina.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.3.0_1: 4,663 files, 59MB

~
% npm install -g npm
/usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm ERR! code EEXIST
npm ERR! syscall symlink
npm ERR! path ../../../lib/node_modules/npm/man/man1/npm-access.1
npm ERR! dest /usr/local/share/man/man1/npm-access.1
npm ERR! errno -17
npm ERR! EEXIST: file already exists, symlink '../../../lib/node_modules/npm/man/man1/npm-access.1' -> '/usr/local/share/man/man1/npm-access.1'
npm ERR! File exists: /usr/local/share/man/man1/npm-access.1
npm ERR! Remove the existing file and try again, or run npm
npm ERR! with --force to overwrite files recklessly.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/manabu/.npm/_logs/2019-12-18T07_51_00_280Z-debug.log

Confirmé que esto sucedió nuevamente cuando ejecuté brew reinstall node .

En realidad, como decía el resultado, lo ejecuté con éxito con --force pero creo que solo mostrar estos registros es mejor que eliminar el comando npm .

Editar (2020/01/11):

En realidad, como decía la salida, lo ejecuté con éxito con --force

Más específicamente, hice estos pasos:

  1. Restaurar npm comando que fue eliminado por npm install -g npm

    • Como uso Homebrew para administrar Node.js, ejecuté brew reinstall node para restaurarlo

  2. Ejecute npm install -g --force npm como se menciona en la salida

Pasos para reproducir

  • n / A

Comportamiento esperado

  • La actualización de npm se realizó correctamente

OMS



  • n / A

Referencias



  • n / A

Bug

Comentario más útil

Resumida, la solución es:

brew reinstall node
npm i -g --force npm

Todos 19 comentarios

relacionada con el cambio @isaacs 'en https://github.com/npm/cli/commit/320ac9aeeafd11bb693c53b31148b8d10c4165e8 NPM / bin-links # 12 NPM / fs-suaves # 7 lanzado en [email protected]

surgido por la protuberancia de NPM de 6.13.2 a 6.13.4 en homebrew https://github.com/Homebrew/homebrew-core/commit/6acc21a27d0ba4ecfd6ebf4d77af7025143daefe#diff -d3ef2414308e30df24a517ca9a1324ee (autor / cometida por @pepyakin @fxcoudert @bayandin)

AFAICS este es el comportamiento previsto en npm. No me queda claro cómo se debe manejar esto en una configuración casera.

https://github.com/npm/cli/issues/672

Hice yarn global add npm e instalé [email protected] y no encontré el error, pero ahora todos mis paquetes globales anteriores se han ido: ((

Opté por no participar en Homebrew y simplemente usé https://github.com/nvm-sh/nvm

Solo haz

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash

Entonces en algún lugar del final, verás

=> Compressing and cleaning up git repository

=> Appending nvm source string to /Users/aprilmintacpineda/.bash_profile
=> Appending bash_completion source string to /Users/aprilmintacpineda/.bash_profile
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

Solo haz source <name of profile> En mi caso <name of profile> es ~/.bash_profile entonces será source ~/.bash_profile

luego

nvm install node para instalar la última versión de node, también instalará la última versión de npm, y eso funcionó para mí.

No estoy seguro si está claro para todos en este hilo que la solución, dado que sabe lo que está haciendo y por qué, es simplemente

npm i -g --force npm (observe la bandera --force )

El problema es que, después de hacer npm -I npm y obtener el error, al intentar cualquier comando npm falla con 'zsh: command not found: npm', por lo que no pude ejecutar el comando --force incluso si quisiera. Tuve que preparar el nodo de reinstalación para recuperar npm.

Lo siento chicos, no describí completamente cómo evité temporalmente este problema. He actualizado la descripción, por favor échale un vistazo.

No estoy seguro si está claro para todos en este hilo que la solución, dado que sabe lo que está haciendo y por qué, es simplemente

npm i -g --force npm (observe la bandera --force )

Esta fue la única solución que encontré para solucionar este problema.

Segunda vez que me pasa esto en unas pocas semanas. Puedes arreglarlo con brew reinstall node .

Aquí está la salida que obtengo ejecutando npm install -g npm :

/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
/usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js
npm ERR! code EEXIST
npm ERR! syscall symlink
npm ERR! path ../../../lib/node_modules/npm/man/man1/npm-adduser.1
npm ERR! dest /usr/local/share/man/man1/npm-adduser.1
npm ERR! errno -17
npm ERR! EEXIST: file already exists, symlink '../../../lib/node_modules/npm/man/man1/npm-adduser.1' -> '/usr/local/share/man/man1/npm-adduser.1'
npm ERR! File exists: /usr/local/share/man/man1/npm-adduser.1
npm ERR! Remove the existing file and try again, or run npm
npm ERR! with --force to overwrite files recklessly.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/albertvilacalvo/.npm/_logs/2020-01-13T11_55_47_922Z-debug.log

Resumida, la solución es:

brew reinstall node
npm i -g --force npm

Esto sucede no solo con la instalación de Homebrew. Tengo el mismo problema con el instalador de nodejs (del sitio oficial). Sin embargo, la solución funciona ... (sudo npm i -g --force npm)

¿Actualizar npm elimina npm? ¿Y no se fija desde diciembre?

¿Actualizar npm elimina npm? ¿Y no se fija desde diciembre?

Sí, me acaba de pasar también en MacOS 10.15.2

Me acaba de pasar a mí también. MacOS Catalina 10.15.3

Esto me acaba de pasar en Ubuntu, y no uso "brew".

Terminé intentando reinstalar npm, pero no me dejaba instalarlo sin sudo. Instalado con sudo, luego encontré una guía (aparentemente mala) para reclamar la propiedad del directorio ~ / .npm (y un par de otros). Al principio todavía no funcionaba, pero hash -r lo solucionó (en retrospectiva, reiniciar mi Ubuntu podría haber funcionado también). Existe una pequeña posibilidad de que esto también solucione un problema que estaba teniendo con react-snap.

Este error se informó en 2014 y me sucedió hoy en 2020. Qué desastre. ¿Se va a arreglar esto alguna vez?

Opté por no participar en Homebrew y simplemente usé https://github.com/nvm-sh/nvm

Solo haz

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash

Entonces en algún lugar del final, verás

=> Compressing and cleaning up git repository

=> Appending nvm source string to /Users/aprilmintacpineda/.bash_profile
=> Appending bash_completion source string to /Users/aprilmintacpineda/.bash_profile
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

Solo haz source <name of profile> En mi caso <name of profile> es ~/.bash_profile entonces será source ~/.bash_profile

luego

nvm install node para instalar la última versión de node, también instalará la última versión de npm, y eso funcionó para mí.

Esto no sucede si usa nvm

"Esto no sucede si usa nvm"

Sí, bueno, tampoco sucede si usa yarn , pero no estoy seguro de que sea relevante.

Creo que eso es irrelevante. NVM es el administrador de versiones de nodo, experimenté esto cuando usé brew para instalar el nodo, luego cambié a nvm, desde entonces no lo he experimentado todavía. Compruébelo aquí si no sabe qué es https://github.com/nvm-sh/nvm#installing -and-updated

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

admosity picture admosity  ·  4Comentarios

darcyclarke picture darcyclarke  ·  4Comentarios

MadhuriGurumurthy11 picture MadhuriGurumurthy11  ·  3Comentarios

1000i100 picture 1000i100  ·  3Comentarios

DullReferenceException picture DullReferenceException  ·  4Comentarios