2017-12-10 10 views
-1

Erste Schritte mit Knoten. Ich bin etwas verwirrt über die Option npm install -g. Könnte mir jemand sagen, ob die folgend richtig ist:Understanding npm install Option -g

  • npm installieren -g
  • npm in einer allgemeinen Lage globale Pakete installiert Pakete im bestimmten Ordner installieren installiert
  • unabhängig davon, wie alle Abhängigkeiten installiert werden muß aufgeführt in der jSON-Datei
  • Abhängigkeiten nicht mit der Option -g installiert seinem aufgelistet werden, wie in dem entsprechenden * Js erforderlich

so zum Beispiel Datei, wenn mit dem installierten Option -g:

var app = express(); 

und wenn nicht mit der Option -g installiert:

var express = require(‘express’); 
var app = express(); 

Antwort

0

Ziemlich verwirrend ...

NPM hat eine großartige Dokumentation. Hast du es gelesen?

Es gibt keinen Unterschied, die Module zu verwenden. Es ändert nichts, wenn Sie global oder project-local installieren.

Zuerst müssen Sie das Modul importieren/anfordern. Dann kannst du es benutzen.

Globale Installation bedeutet, dass jedes Projekt, das die gleiche Knoteninstallation verwendet, es erfordern kann.

Obwohl es eine andere Abhängigkeit gibt, wenn die Installation benutzer-global oder system-global ist.

  • Benutzer-global: Nur Projekte, die von diesem einen Benutzer ausgeführt werden können erfordern.
  • System-global: Alle Projekte aller Benutzer können erfordern.
+0

Lesen Sie die Dokumentation, aber verstehe sie nicht. Können Sie genauer erklären, was Sie meinen ...Globale Installation bedeutet, dass jedes Projekt, das die gleiche Knoteninstallation verwendet, dies erfordern kann. Ich führe Knoten auf localhost, ist die gleiche Installation nur die Maschine oder die Maschine und Port-Nummer? – DCR

+0

Es hat mit der Laufzeitumgebung zu tun. NPM sucht nach Dateien (.npmrc) und Verzeichnissen (node_modules), basierend auf dem Installationspfad von Node/NPM selbst und dem HOME/USERPROFILE. Es gibt nichts Netzwerkbezogenes in global. – Markus

+0

@DCR Weder Node noch npm kennen oder interessieren sich für localhost- oder Portnummern. Wenn Sie 'npm install foo 'für ein Projekt verwenden, kann nur dieses Projekt und nichts anderes das Paket verwenden (mit' require (' foo ') '). Wenn Sie "npm install -g foo" ausführen, kann jedes Projekt auf Ihrem Computer dieses Paket verwenden (wiederum mit 'require ('foo')'). – JJJ

2

mit -g Installation setzt die Pakete an einem Ort zugänglich in dem Weg, so dass das Paket von allen Anwendungen zur Verfügung das erfordert es. Normalerweise sollten Sie diese Option nur bei der Installation von Dienstprogrammen verwenden, die eigene eigenständige ausführbare Dateien haben (z. B. WebPack oder die Express-Befehlszeilenschnittstelle).

Das hat absolut nichts damit zu tun, wie Pakete in Ihrer Anwendung geladen werden. Sie müssen immer noch require() verwenden.

NPM ist effektiv unabhängig von Node.js. Es ist ein Paket-Manager, der keinerlei Einfluss darauf hat, wie require() funktioniert.

Verwandte Themen