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
/usr
haben 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
~/.profile
und fügen Sie dies hinzu:export PATH=~/.npm-global/bin:$PATH
-
Fügen Sie dies auch zu Ihrer
~/.bashrc
hinzu 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/