Ab Montagmorgen ist das Ausführen der Befehle nodemon
und npm run dev
für ein Projekt, an dem ich arbeite, fehlgeschlagen, und ich habe es auf einen Fehler mit NPM selbst zurückgeführt.
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$
Während also Node selbst lief, war es NPM nicht, obwohl seine Datei vorhanden war.
In der Entwicklung verwende ich nodemon
und npm run dev
in zwei Terminal-Tabs – beide liefen Sonntagnacht, bevor sie angehalten und dann der Mac in den Ruhezustand versetzt wurden.
Ich habe mich gefragt, ob eine Genehmigung geändert wurde.
Ich habe Homebrew ausprobiert, das Node, aber nicht NPM installiert hat, also musste ich das entfernen.
Ich habe den offiziellen Node-Installer für Mac ausprobiert, aber es ist eine alte Version, die Probleme verursacht hat, also musste ich sie entfernen.
Ich bin den nuklearen Weg gegangen und habe Knoten entfernt, wo immer er gefunden werden konnte:
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
Ich habe dann die offizielle Anweisung ausprobiert, Node über die Befehlszeile zu installieren:
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 "/"
… was fehlgeschlagen ist:
-bash: wget: command not found
… und als ich versuchte, wget zu installieren:
brew install wget
… Ich habe mehr Fehler:
Fehler: Der
brew link
Schritt wurde nicht erfolgreich abgeschlossen. Die Formel wurde erstellt, ist aber nicht in /usr/local symbolisch verlinkt. Share/locale/cs/LC_MESSAGES/libidn2.mo konnte nicht symbolisiert werden. /usr/local/share/locale/cs/LC_MESSAGES ist nicht beschreibbar .Sie können es erneut versuchen mit: brew link libidn2
… Und:
Fehler: Der
brew link
Schritt wurde nicht erfolgreich abgeschlossen. Die Formel wurde erstellt, ist aber nicht in /usr/local symbolisch verlinkt. Share/locale/bg/LC_MESSAGES/wget.mo konnte nicht symbolisiert werden. /usr/local/share/locale/bg/LC_MESSAGES ist nicht beschreibbar .Sie können es erneut versuchen mit: brew link wget
Ich hatte vor dem Wochenende ähnliche Probleme mit Homebrew, und ich denke, das ist eine Fortsetzung davon.
Wenn ich laufe brew doctor
bekomme ich:
Unexpected header files:
/usr/local/include/node/...
… und es gibt Hunderte von Dateien, die mit Node verbunden sind, obwohl es deinstalliert wurde.
Ich habe seitdem ein paar verschiedene Ansätze gefunden, um das mögliche Berechtigungsproblem zu beheben:
sudo chown -R
Wer bin ich:admin /usr/local/
… Und:
sudo chown -R $(whoami) $(brew --prefix)/*
… aber da ich keine Ahnung habe, was die möglichen Folgen eines solchen Betriebs wären, wäre ein Expertenrat sehr willkommen!
Ich habe gerade diesen gleichen Fehler gelöst. Was bei mir funktioniert hat war:
brew install node
sudo chmod 776 /usr/local/lib
brew link --overwrite node
sudo chmod 755 /usr/local/lib
Als ich lief, npm -v
bekam ich den gleichen Fehler:
internal/modules/cjs/loader.js:983
throw err;
Um es zu lösen, lief ich brew reinstall node
und alles läuft jetzt wie erwartet.
stat -f %A /usr/local/lib
und ihn dann nach dem Ausführen wieder darauf ändern, brew link --overwrite node
wie ich es in meiner Antwort getan habe :)brew link --overwrite node
bekam ich: Linking /usr/local/Cellar/node/13.8.0... Error: Could not symlink include/node/common.gypi /usr/local/include/node is not writable.
Muss ich dort auch die Berechtigungen ändern?rm '/usr/local/include/node/config.gypi'
und folgte dann den Schritten in meiner Antwort.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`, um diese Version zu verlinken.`sudo chmod 776 /usr/local/lib
klanomath
Wayne Kleinmann
klanomath