Ich verwende ein Framework, das npm ausführt und webpack automatisch das Verzeichnis /usr/lib/node_modules haben 755 Berechtigungen, die zum Ausführen von npm erforderlich sind über sudo . Das von mir verwendete Framework erlaubt das Hinzufügen von sudo nicht zum Befehl.
Jetzt muss ich npm-Pakete in globaler Form installieren (z. B. npm install webpack -g ) ohne Verwendung von sudo .
Welche Berechtigungen sind für /usr/lib/node_modules in Ordnung ? Wenn ich 777-Berechtigungen einstelle, ist das in Ordnung und sicher?
Vielen Dank!
Akzeptierte Antwort:
Sie müssen die Berechtigung nicht ändern von npm um es ohne sudo verwenden zu können . npm einrichten ohne sudo auszuführen Gehen Sie folgendermaßen vor:
Möglichkeit 1:
-
Pfad des npm-Verzeichnisses abrufen:
npm config get prefix -
Wenn Sie
/usrhaben gehen Sie zu Option 2 andernfalls ändern Sie den Besitzer von npm-Verzeichnissen in Ihren:sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
Möglichkeit 2:
-
Verzeichnis für globale Installationen erstellen:
mkdir ~/.npm-global -
Konfigurieren Sie dieses Verzeichnis, um es zu verwenden:
npm config set prefix '~/.npm-global' -
Öffnen oder erstellen Sie
~/.profileund fügen Sie dies hinzu:export PATH=~/.npm-global/bin:$PATH -
Fügen Sie dies auch zu Ihrer
~/.bashrchinzu Datei (optional):export PATH=/home/username/.npm-global/bin:$PATH export NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript:/home/username/.npm-global/lib/node_modules -
Aktualisieren Sie die Dateien:
source ~/.bashrc -
Testen Sie, indem Sie Folgendes ausführen:
npm install -g jshint
Quelle:
https://docs.npmjs.com/getting-started/fixing-npm-permissions
http://www.competa.com/blog/how-to-run-npm-without-sudo/