Troubleshooting: npm - Missing write access
Auf dieser Seite
Beim installieren globaler Pakete mit npm ist der Fehler “Missing write access” aufgetreten:
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR! stack:
npm ERR! 'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'',
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/cnichte/.npm/_logs/2019-11-01T11_10_39_023Z-debug.log
Die erste Zeile der Meldung gibt die Lösung vor:
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
Passe die Rechte für das Verzeichnis an. Gib dazu im Terminal ein:
sudo chown -R $USER /usr/local/lib/node_modules
Was passiert hier?
sudo
bedeutet, dass du diesen Befehl als root
ausführst, dem Superuser des Systems. Das liegt daran, dass du keine Berechtigung hast, in diesen Ordner zu schreiben, aber root kann jede Berechtigung korrigieren. Dieser Befehl bedeutet auch, dass das System dich zur Bestätigung deines Passworts auffordert.
chown
ist der Befehl, mit dem du den Besitzer einer Datei oder eines Ordners ändern. Du setzt die Option -R, um den Eigentümer rekursiv zu ändern, so dass du auch Zugriff auf alle bereits darin enthaltenen Dateien erhältst.
$USER
ist eine Umgebungsvariable, die automatisch auf deinen Benutzernamen gesetzt wird.
Der letzte Parameter ist der Pfad. Nach Ausführung des Befehls gehört der Ordner dir, so dass du dein npm install -g <package>
Befehl ohne Fehler ausführen kannst.
Falls die Fehlermeldung wieder auftritt hat die jemand die Rechte entzogen, und du darfst chown
wieder ausführen.
chown
ist der Befehl, mit dem du den Besitzer einer Datei oder eines Ordners ändern. Du setzt die Option -R, um den Eigentümer rekursiv zu ändern, so dass du auch Zugriff auf alle bereits darin enthaltenen Dateien erhältst.
$USER
ist eine Umgebungsvariable, die automatisch auf deinen Benutzernamen gesetzt wird.
Der letzte Parameter ist der Pfad. Nach Ausführung des Befehls gehört der Ordner dir, so dass du dein npm install -g <package>
Befehl ohne Fehler ausführen kannst!
Halte immer ein Auge auf dem Ordner. Falls die Fehlermeldung wieder auftritt musst du chown wieder ausführen.