Dieser Artikel wurde von der Huawei Cloud Community „Die Beziehung zwischen npm install -g und npm install --save-dev“ geteilt , Autor: SHQ5785.
1. npm install lokale Installation
- Platzieren Sie das Installationspaket unter ./node_modules (dem Verzeichnis, in dem der npm-Befehl ausgeführt wird). Wenn kein node_modules-Verzeichnis vorhanden ist, wird das node_modules-Verzeichnis in dem Verzeichnis generiert, in dem der npm-Befehl derzeit ausgeführt wird.
- Lokale Installationspakete können über require() eingeführt werden.
2. npm install -g globale Installation
- Platzieren Sie das Installationspaket unter /usr/local oder im Knoteninstallationsverzeichnis.
- Kann direkt über die Befehlszeile verwendet werden.
3. npm install --save
- Das Build-Paket wird im Verzeichnis node_modules installiert.
- Build wird unter dem dependencies-Attribut von package.json hinzugefügt;
- Wenn Sie später den Befehl „npm install“ ausführen, wird der Build automatisch im Verzeichnis „node_modules“ installiert.
- Wenn Sie später npm install --produktion ausführen oder angeben, dass der Wert der NODE_ENV-Variablen Produktion ist, wird msbuild automatisch im Verzeichnis node_modules installiert.
4. npm install --save-dev
- Das msbuild-Paket wird im Verzeichnis node_modules installiert.
- msbuild wird unter dem devDependencies-Attribut von package.json hinzugefügt;
- Wenn Sie später den Befehl „npm install“ ausführen, wird msbuild automatisch im Verzeichnis „node_modules“ installiert.
- Wenn Sie später npm install --produktion ausführen oder angeben, dass der Wert der NODE_ENV-Variablen Produktion ist, wird msbuild nicht automatisch im Verzeichnis node_modules installiert.
5. Der Unterschied zwischen Abhängigkeiten und DevDependencies in package.json
- Abhängigkeiten:
Pakete, von denen die Anwendung für den normalen Betrieb abhängt. Diese Art von Abhängigkeiten kommt am häufigsten vor. Benutzer installieren diese Abhängigkeiten automatisch, wenn sie npm install zum Installieren von Paketen verwenden.
- devDependencies:
Toolkits, auf die man sich bei der Entwicklung von Anwendungen verlassen kann. Normalerweise einige Entwicklungs- , Test- und Verpackungstools wie Webpack, ESLint und Mocha. Der normale Betrieb der Anwendung hängt nicht von diesen Paketen ab, und Benutzer werden diese Abhängigkeiten nicht installieren, wenn sie npm install zum Installieren von Paketen verwenden.
- PeerAbhängigkeiten:
Hostpakete , von denen die Anwendung zum Ausführen abhängt . Die typischsten sind Plug-Ins , beispielsweise verschiedene jQuery-Plug-Ins. Diese Plug-Ins selbst enthalten kein jQeury und müssen extern bereitgestellt werden. Diese Abhängigkeit wird automatisch installiert, wenn Benutzer npm 1 oder 2 verwenden. npm 3 installiert sie nicht automatisch und fordert den Benutzer zur Installation auf.
- gebündelte Abhängigkeiten:
Abhängigkeiten, die beim Veröffentlichen eines Pakets gepackt werden müssen, scheinen selten zu sein.
- optionalAbhängigkeiten:
Optionale Abhängigkeiten. Diese Abhängigkeit ist für die Ausführung des Programms nicht erforderlich, nach der Installation stehen jedoch möglicherweise neue Funktionen zur Verfügung, z. B. eine Bilddekodierungsbibliothek. Nach der Installation optionaler Abhängigkeiten werden weitere Formate unterstützt.
Was ist also der Unterschied zwischen den devDependencies- und dependencies-Objekten in der package.json-Datei?
Die Plug-Ins in devDependencies (z. B. verschiedene Loader, Babel-Familien-Buckets und verschiedene Webpack-Plug-Ins usw.) werden nur in der Entwicklungsumgebung und nicht in der Produktionsumgebung verwendet, sodass sie nicht in Abhängigkeiten gepackt werden müssen müssen für die Produktionsumgebung freigegeben werden und müssen verpackt werden.
Die Raubkopien von „Qing Yu Nian 2“ wurden auf npmror hochgeladen, was dazu führte, dass npmmirror den Unpkg-Dienst einstellen musste: Es bleibt nicht mehr viel Zeit für Google. Ich schlage vor, dass alle Produkte Open Source sind . time.sleep(6) spielt hier eine Rolle. Linus ist am aktivsten beim „Hundefutter fressen“! Das neue iPad Pro verwendet 12 GB Speicherchips, behauptet jedoch, über 8 GB Speicher zu verfügen. People’s Daily Online bewertet die Aufladung im Matroschka-Stil: Nur durch aktives Lösen des „Sets“ können wir eine Zukunft haben Neues Entwicklungsparadigma für Vue3, ohne die Notwendigkeit von „ref/reactive“ und ohne die Notwendigkeit von „ref.value“. MySQL 8.4 LTS Chinesisches Handbuch veröffentlicht: Hilft Ihnen, den neuen Bereich der Datenbankverwaltung zu meistern Tongyi Qianwen GPT-4-Level-Hauptmodellpreis reduziert um 97 %, 1 Yuan und 2 Millionen Token