Wie stellen Sie npm (Knoten Paket-Manager) ohne Root-Zugriff auf?
-
02-10-2019 - |
Frage
npm Einstellung als Root-Benutzer nach oben ist straighforward und workds. Außer Sie npm Befehle als root ausführen (nicht empfohlen). Also dachte ich, ich würde versuchen, es auf als Nicht-Root-Benutzer festlegen.
Nach npm Dokumentation, ein Nicht-Root-Benutzer ohne Root-Zugriff kann npm eingesetzt durch:
- eine
.npmrc
Datei mitroot
,binroot
undmanroot
zeigt auf Ordner erstellen, dass der Benutzer besitzt. - Dann das Skript installiert ausgeführt wird.
OK. Installieren Sie war in Ordnung.
Aber Knoten können die Pakete nicht sehen von npm zur Verfügung gestellt.
Wie mache ich Knoten bewusst die durch npm vorgesehen Pakete? (Ich habe nichts zu tun, wenn ich vorher npm als root installiert ist).
Ich kann require.paths
innerhalb Knoten gesetzt, oder die NODE_PATH
Umgebungsvariable gesetzt, sondern auf das, was?
Danke.
Lösung
Durch eine wenig Exploration, es scheint, können Sie entweder:
- , geben Sie Ihre
NODE_PATH
auf, was npm Stammverzeichnis ist, oder - , während in Knoten, invoke
require.paths.push('path_to_npm_root')
Andere Tipps
Das ist für mich gearbeitet:
-
Erstellen Sie eine
~/.node
Ordnermkdir ~/.node
-
Bearbeiten
~/.npmrc
und fügen Sie die Zeileprefix = ~/.node
-
Bearbeiten Sie Ihre
~/.profile
oder~/.bash_profile
und fügen Sie diese ZeilenPATH="$HOME/.node/bin:$PATH" NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH"
Jetzt kann ich Dinge wie npm -g install http-server
tun und es wird zu ~/.node
ohne root installieren. In diesem Ort, als ich dann http-server
geben, läuft es.