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:

  1. eine .npmrc Datei mit root, binroot und manroot zeigt auf Ordner erstellen, dass der Benutzer besitzt.
  2. 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.

War es hilfreich?

Lösung

Durch eine wenig Exploration, es scheint, können Sie entweder:

  1. , geben Sie Ihre NODE_PATH auf, was npm Stammverzeichnis ist, oder
  2. , während in Knoten, invoke require.paths.push('path_to_npm_root')

Andere Tipps

Das ist für mich gearbeitet:

  1. Erstellen Sie eine ~/.node Ordner

    mkdir ~/.node
    
  2. Bearbeiten ~/.npmrc und fügen Sie die Zeile

    prefix = ~/.node
    
  3. Bearbeiten Sie Ihre ~/.profile oder ~/.bash_profile und fügen Sie diese Zeilen

    PATH="$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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top