A partir del lunes por la mañana, falló la ejecución de los comandos nodemon
y npm run dev
para un proyecto en el que estoy trabajando, y lo rastreé hasta algún error con 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$
Entonces, mientras Node se estaba ejecutando, NPM no, a pesar de que su archivo estaba presente.
En el desarrollo que uso nodemon
y npm run dev
en dos pestañas de Terminal, ambas se estaban ejecutando el domingo por la noche, antes de detenerlas y luego dormir la Mac.
Me preguntaba si un permiso había sido alterado.
Probé Homebrew, que instaló Node pero no NPM, así que tuve que eliminarlo.
Probé el instalador oficial de Node para Mac, pero es una versión anterior que causó problemas, así que tuve que eliminarla.
Seguí el camino nuclear y eliminé Node 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 probé las instrucciones oficiales para instalar Node a través de la línea de comando:
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 falló:
-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 se creó, pero no está vinculada a /usr/local No se pudo vincular simbólicamente share/locale/cs/LC_MESSAGES/libidn2.mo /usr/local/share/locale/cs/LC_MESSAGES no se puede escribir .Puede intentarlo de nuevo usando: brew link libidn2
… y:
Error: el
brew link
paso no se completó con éxito La fórmula se creó, pero no está vinculada a /usr/local No se pudo vincular simbólicamente share/locale/bg/LC_MESSAGES/wget.mo /usr/local/share/locale/bg/LC_MESSAGES no se puede escribir .Puede 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
me sale:
Unexpected header files:
/usr/local/include/node/...
… y hay cientos de archivos asociados a Node, a pesar de haberlo desinstalado.
Desde entonces, encontré algunos enfoques diferentes para solucionar el posible problema de permisos:
sudo chown -R
quién soy:admin /usr/local/
… y:
sudo chown -R $(whoami) $(brew --prefix)/*
… pero como no tengo idea de cuáles serían las posibles consecuencias de ejecutar cualquiera de estos, ¡serían bienvenidos algunos consejos de expertos!
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
obtuve el mismo error:
internal/modules/cjs/loader.js:983
throw err;
Para resolverlo, corrí brew reinstall node
y todo funciona como se esperaba ahora.
stat -f %A /usr/local/lib
y luego me aseguraría de volver a cambiarlos después de ejecutar brew link --overwrite node
como lo hice en mi respuesta :)brew link --overwrite node
obtuve: ¿ Linking /usr/local/Cellar/node/13.8.0... Error: Could not symlink include/node/common.gypi /usr/local/include/node is not writable.
Necesitaría cambiar los permisos allí también?rm '/usr/local/include/node/config.gypi'
y luego seguí los pasos en mi respuesta.macbookpro@macbookpro:~$ node -v -bash: node: command not found macbookpro@macbookpro:~$ npm -v -bash: npm: command not found macbookpro@macbookpro:~$
brew install node
?brew install node
?Updating Homebrew... ==> Auto-updated Homebrew! Updated 1 tap (homebrew/cask). No changes to formulae. Warning: node 13.8.0 is already installed, it's just not linked You can use
brew link node` para vincular esta versión.`sudo chmod 776 /usr/local/lib
klanomath
Wayne Smallman
klanomath