Ich verwende ein Framework, das npm
und webpack
automatisch ausführt. Das Verzeichnis /usr/lib/node_modules
verfügt über 755 Berechtigungen, für die npm
bis Sudo
ausgeführt werden müssen. Das von mir verwendete Framework erlaubt es nicht, Sudo
zum Befehl hinzuzufügen.
Jetzt muss ich npm-Pakete in globaler Form installieren (z. B. npm install webpack -g
), ohne Sudo
zu verwenden.
Welche Berechtigungen sind für /usr/lib/node_modules
in Ordnung? Wenn ich 777-Berechtigungen einstelle, ist das in Ordnung und sicher?
Dankeschön!
Sie müssen Erlaubnis von npm
nicht ändern, um es ohne Sudo
verwenden zu können. Gehen Sie folgendermaßen vor, um npm
so einzurichten, dass es ohne Sudo
ausgeführt wird:
Option 1:
Pfad des npm-Verzeichnisses abrufen:
npm config get prefix
Wenn Sie /usr
haben, gehen Sie zu Option 2 . Andernfalls ändern Sie den Besitzer der npm-Verzeichnisse zu Ihrem:
Sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
Option 2:
Erstellen Sie ein Verzeichnis für globale Installationen:
mkdir ~/.npm-global
Konfigurieren Sie, um dieses Verzeichnis zu verwenden:
npm config set prefix '~/.npm-global'
Öffne oder erstelle ~/.profile
und füge dies hinzu:
export PATH=~/.npm-global/bin:$PATH
Fügen Sie dies auch Ihrer ~/.bashrc
-Datei hinzu (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
Test durch Laufen:
npm install -g jshint
quelle:
https://docs.npmjs.com/getting-started/fixing-npm-permissions