1 votos

Problemas para instalar el Nodo y el NPM a través de Homebrew

A partir del lunes por la mañana, el funcionamiento de la nodemon y npm run dev los comandos de un proyecto en el que estoy trabajando fallaron, y lo rastreé hasta algún error con el propio NPM.

macbookpro@MacBookPro:/usr/local/lib$ npm -v
internal/modules/cjs/loader.js:983
throw err;
^
Error: Cannot find module '../lib/utils/unsupported.js'
Require stack:
- /usr/local/lib/node_modules/npm/bin/npm-cli.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15)
at Function.Module._load (internal/modules/cjs/loader.js:862:27)
at Module.require (internal/modules/cjs/loader.js:1040:19)
at require (internal/modules/cjs/helpers.js:72:18)
at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:21
at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:153:3)
at Module._compile (internal/modules/cjs/loader.js:1151:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)
at Module.load (internal/modules/cjs/loader.js:1000:32)
at Function.Module._load (internal/modules/cjs/loader.js:899:14) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/usr/local/lib/node_modules/npm/bin/npm-cli.js' ]
}
macbookpro@MacBookPro:/usr/local/lib$ node -v
v13.8.0
macbookpro@MacBookPro:/usr/local/lib$ ls -al node_modules/npm/bin/
total 56
drwxr-xr-x 9 macbookpro staff 288B 24 Feb 09:03 ./
drwxr-xr-x 25 root wheel 800B 7 Aug 2019 ../
drwxr-xr-x 4 macbookpro staff 128B 24 Feb 09:03 node-gyp-bin/
-rwxr-xr-x 1 macbookpro staff 893B 24 Feb 09:03 npm*
-rwxr-xr-x 1 macbookpro staff 4.5K 24 Feb 09:03 npm-cli.js*
-rw-r--r-- 1 macbookpro staff 483B 24 Feb 09:03 npm.cmd
-rw-r--r-- 1 macbookpro staff 887B 24 Feb 09:03 npx
-rwxr-xr-x 1 macbookpro staff 177B 24 Feb 09:03 npx-cli.js*
-rw-r--r-- 1 macbookpro staff 539B 24 Feb 09:03 npx.cmd
macbookpro@MacBookPro:/usr/local/lib$

Así que mientras el propio Nodo estaba funcionando, el NPM no, a pesar de que su archivo estaba presente.

En el desarrollo utilizo nodemon y npm run dev en dos pestañas de la Terminal - ambas estaban funcionando el domingo por la noche, antes de detenerlas y luego dormir la Mac.

Me preguntaba si un permiso había sido alterado.

Intenté con Homebrew, que instaló el Nodo pero no el NPM, así que tuve que quitarlo.

Probé el instalador oficial de Node para Mac, pero es una versión antigua que causaba problemas, así que tuve que quitarlo.

Bajé por el camino nuclear, y quité el Nodo dondequiera que se pudiera encontrar:

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

Luego intenté la instrucción oficial de instalar el Nodo a través de la línea de comandos:

curl "https://nodejs.org/dist/latest/node-${VERSION:-$(wget -qO- https://nodejs.org/dist/latest/ | sed -nE 's|.*>node-(.*)\.pkg</a>.*|\1|p')}.pkg" > "$HOME/Downloads/node-latest.pkg" && sudo installer -store -pkg "$HOME/Downloads/node-latest.pkg" -target "/"

que fracasó:

-bash: wget: command not found

y cuando intenté instalar Wget:

brew install wget

tengo más errores:

Error: El brew link paso no se completó con éxito La fórmula construido, pero no está vinculado a /usr/local No podía vincularse share/locale/cs/LC_MESSAGES/libidn2.mo /usr/local/share/locale/cs/LC_MESSAGES no se puede escribir.

Puedes intentarlo de nuevo usando: brew link libidn2

y..:

Error: El brew link paso no se completó con éxito La fórmula construido, pero no está vinculado a /usr/local No podía vincularse share/locale/bg/LC_MESSAGES/wget.mo /usr/local/share/locale/bg/LC_MESSAGES no se puede escribir.

Puedes intentarlo de nuevo usando: brew link wget

Tuve problemas similares con Homebrew antes del fin de semana, y creo que esto es una continuación de eso.

Cuando corro brew doctor Lo entiendo:

Unexpected header files:
  /usr/local/include/node/...

y hay cientos de archivos asociados al Nodo, a pesar de haberlo desinstalado.

Desde entonces he encontrado algunos enfoques diferentes para arreglar el posible problema de los permisos:

sudo chown -R whoami :admin /usr/local/

y..:

sudo chown -R $(whoami) $(brew --prefix)/*

pero como no tengo ni idea de las posibles consecuencias de ejecutar cualquiera de estos, ¡algún consejo de experto sería muy bienvenido!

0 votos

La energía nuclear requiere una buena copia de seguridad: retrasar el reloj de las 12 y 5 a 100 segundos antes de la medianoche restaurando su copia de seguridad del domingo por la noche. IMHO su carpeta /usr/local/ es FUBAR.

0 votos

Hola @klanomath, el domingo ejecuté Time Machine, supongo que es posible restaurar las carpetas ocultas.

0 votos

Comprueba primero la respuesta de MichelleM...

1voto

jakeonfire Puntos 1

Acabo de resolver este mismo error. Lo que funcionó para mí fue:

brew install node
sudo chmod 776 /usr/local/lib
brew link --overwrite node
sudo chmod 755 /usr/local/lib

Cuando corrí npm -v Tengo el mismo error:

internal/modules/cjs/loader.js:983
  throw err;

Para resolverlo corrí brew reinstall node y todo está funcionando como se esperaba ahora.

0 votos

Hola Michelle, y gracias por la sugerencia. Lo que me preocupa es cambiar los permisos de esas carpetas, ¿alguna idea al respecto?

1 votos

Yo comprobaría los permisos actuales de la carpeta ejecutando stat -f %A /usr/local/lib y luego asegúrate de volver a cambiarlo después de ejecutar brew link --overwrite node como hice en mi respuesta :)

0 votos

Cuando corrí brew link --overwrite node Lo tengo: Linking /usr/local/Cellar/node/13.8.0... Error: Could not symlink include/node/common.gypi /usr/local/include/node is not writable. ¿También tendría que cambiar los permisos allí?

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X