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