Heim Web-Frontend js-Tutorial Mehrere npm-Abhängigkeitspaketverwaltungsfreigaben

Mehrere npm-Abhängigkeitspaketverwaltungsfreigaben

Jan 27, 2018 pm 01:52 PM
依赖 分享 管理

Dieser Artikel stellt Ihnen hauptsächlich verschiedene Arten der npm-Abhängigkeitspaketverwaltung vor, die Sie kennen sollten. npm ist der Paketmanager in node.js und ein Befehlszeilentool. Der Artikel stellt ihn detailliert anhand von Beispielcode vor Sie können es als Referenz verwenden und dem Editor folgen, um gemeinsam zu lernen.

npm unterstützt derzeit die folgenden Arten der Abhängigkeitspaketverwaltung:

  • Abhängigkeiten

  • devDependencies

  • peerDependencies

  • optionalDependencies

  • bundledDependencies / bundleDependencies

If Wenn Sie wissen, welche Art von Abhängigkeitsverwaltung Sie verwenden möchten, können Sie sie in das entsprechende Abhängigkeitsobjekt in package.json einfügen, z. B.:

 "devDependencies": {
 "fw2": "^0.3.2",
 "grunt": "^1.0.1",
 "webpack": "^3.6.0"
 },
 "dependencies": {
 "gulp": "^3.9.1",
 "hello-else": "^1.0.0"
 },
 "peerDependencies": { },
 "optionalDependencies": { },
 "bundledDependencies": []
Nach dem Login kopieren

Sehen wir uns das einzeln an:

Abhängigkeiten

Anwendungsabhängigkeiten oder Geschäftsabhängigkeiten sind unsere am häufigsten verwendeten Abhängigkeitspaketverwaltungsobjekte! Es wird verwendet, um die externen Pakete anzugeben, von denen die Anwendung abhängt. Diese Abhängigkeiten sind für die normale Ausführung nach der Veröffentlichung der Anwendung erforderlich, umfassen jedoch keine Pakete, die beim Testen oder beim lokalen Packen verwendet werden. Zur Installation können Sie den folgenden Befehl verwenden:

npm install packageName --save
Nach dem Login kopieren

dependencies ist ein einfaches JSON-Objekt, einschließlich des Paketnamens und der Paketversion, wobei die Paketversion eine Versionsnummer oder eine URL-Adresse sein kann. Zum Beispiel:

{ 
 "dependencies" :{ 
 "foo" : "1.0.0 - 2.9999.9999", // 指定版本范围
 "bar" : ">=1.0.2 <2.1.2", 
 "baz" : ">1.0.2 <=2.3.4", 
 "boo" : "2.0.1", // 指定版本
 "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0", 
 "asd" : "http://asdf.com/asdf.tar.gz", // 指定包地址
 "til" : "~1.2", // 最近可用版本
 "elf" : "~1.2.3", 
 "elf" : "^1.2.3", // 兼容版本
 "two" : "2.x", // 2.1、2.2、...、2.9皆可用
 "thr" : "*", // 任意版本
 "thr2": "", // 任意版本
 "lat" : "latest", // 当前最新
 "dyl" : "file:../dyl", // 本地地址
 "xyz" : "git+ssh://git@github.com:npm/npm.git#v1.0.27", // git 地址
 "fir" : "git+ssh://git@github.com:npm/npm#semver:^5.0",
 "wdy" : "git+https://isaacs@github.com/npm/npm.git",
 "xxy" : "git://github.com/npm/npm.git#v1.0.27",
 }
}
Nach dem Login kopieren

devDependencies

Entwicklungsumgebungsabhängigkeiten, an zweiter Stelle nach der Häufigkeit der Verwendung von Abhängigkeiten! Seine Objektdefinition ist dieselbe wie bei Abhängigkeiten, mit der Ausnahme, dass die darin enthaltenen Pakete nur in der Entwicklungsumgebung und nicht in der Produktionsumgebung verwendet werden. Bei diesen Paketen handelt es sich normalerweise um Unit-Tests oder Verpackungstools wie gulp, grunt, webpack, moca, Coffee usw., die verwendet werden können. Der folgende Befehl wird zur Installation verwendet:

npm install packageName --save-dev
Nach dem Login kopieren

Zum Beispiel:

{ "name": "ethopia-waza",
 "description": "a delightfully fruity coffee varietal",
 "version": "1.2.3",
 "devDependencies": {
 "coffee-script": "~1.6.3"
 },
 "scripts": {
 "prepare": "coffee -o lib/ -c src/waza.coffee"
 },
 "main": "lib/waza.js"
}
Nach dem Login kopieren

Das Vorbereitungsskript wird vor der Veröffentlichung ausgeführt, sodass Benutzer dies nicht tun Sie müssen sich beim Kompilieren des Projekts darauf verlassen. Im Entwicklungsmodus wird beim Ausführen von npm install auch das Vorbereitungsskript ausgeführt, das während der Entwicklung problemlos getestet werden kann.

Verstehen Sie an dieser Stelle den Unterschied zwischen --save und --save-dev?

peerDependencies

Gleiche Abhängigkeiten oder Peer-Abhängigkeiten werden verwendet, um die Hostversion anzugeben, mit der das aktuelle Paket (d. h. das von Ihnen geschriebene Paket) kompatibel ist. Wie ist es zu verstehen? Stellen Sie sich vor, wir schreiben ein Gulp-Plugin, aber Gulp hat mehrere Hauptversionen. Zu diesem Zeitpunkt können wir peerDependencies verwenden, um Folgendes anzugeben:

{
 "name": "gulp-my-plugin",
 "version": "0.0.1",
 "peerDependencies": {
 "gulp": "3.x"
 }
}
Nach dem Login kopieren

Wann Wenn andere unser Plug-in verwenden, teilt peerDependencies dem Benutzer klar mit, welche Hostversion des Plug-ins Sie installieren müssen.

Normalerweise verwenden wir viele Plug-Ins eines Hosts (z. B. gulp) in einem Projekt. Wenn bei der Ausführung von npm install eine Host-Inkompatibilität vorliegt, gibt die CLI eine entsprechende Fehlermeldung aus Wir, zum Beispiel:

npm ERR! peerinvalid The package gulp does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer gulp-cli-config@0.1.3 wants gulp@~3.1.9
npm ERR! peerinvalid Peer gulp-cli-users@0.1.4 wants gulp@~2.3.0
Nach dem Login kopieren

führen den Befehl npm install gulp-my-plugin --save-dev aus, um unser Plug-in zu installieren:

├── gulp-my-plugin@0.0.1
└── gulp@3.9.1
Nach dem Login kopieren

OK, schön!

Beachten Sie, dass npm 1 und npm 2 automatisch dieselben Abhängigkeiten installieren. npm 3 wird nicht mehr automatisch installiert und eine Warnung generiert! Das manuelle Hinzufügen von Abhängigkeiten in der Datei package.json kann gelöst werden.

optionale Abhängigkeiten

Optionale Abhängigkeiten, die das Projekt auch dann noch ausführen kann, wenn die Installation fehlschlägt oder Sie möchten, dass npm weiterhin ausgeführt wird optionale Abhängigkeiten. Darüber hinaus überschreibt optionalDependencies das gleichnamige Abhängigkeitspaket in Abhängigkeiten. Schreiben Sie es daher nicht an beiden Stellen.

Ein optionales Abhängigkeitspaket ist beispielsweise wie ein Plug-In des Programms. Wenn es vorhanden ist, wird die vorhandene Logik ausgeführt. Wenn es nicht vorhanden ist, wird eine andere Logik ausgeführt.

try {
 var foo = require('foo')
 var fooVersion = require('foo/package.json').version
} catch (er) {
 foo = null
}
if ( notGoodFooVersion(fooVersion) ) {
 foo = null
}

// .. then later in your program ..

if (foo) {
 foo.doFooThings()
}
Nach dem Login kopieren

bundledDependencies / bundleDependencies

Paketabhängigkeiten, bundledDependencies ist ein Array-Objekt, das abhängige Paketnamen enthält. Beim Veröffentlichen werden die Pakete in diesem Objekt in die endgültige Version gepackt die Tasche. Beispiel:

{
 "name": "fe-weekly",
 "description": "ELSE 周刊",
 "version": "1.0.0",
 "main": "index.js",
 "devDependencies": {
 "fw2": "^0.3.2",
 "grunt": "^1.0.1",
 "webpack": "^3.6.0"
 },
 "dependencies": {
 "gulp": "^3.9.1",
 "hello-else": "^1.0.0"
 },
 "bundledDependencies": [
 "fw2",
 "hello-else"
 ]
}
Nach dem Login kopieren

Führen Sie den Verpackungsbefehl npm pack aus und das generierte Paket fe-weekly-1.0.0.tgz enthält fw2 und hello-else. Es ist jedoch zu beachten, dass diese beiden Pakete zuerst in devDependencies oder dependencies deklariert werden müssen, da die Verpackung sonst einen Fehler meldet.

Verwandte Empfehlungen:

Spring Boot führt Abhängigkeitspaket Druid ein

Detaillierte Erläuterung der NPM- und Webpack-Konfigurationsmethoden im Knoten. js

Teilen Sie mit, wie Sie die neueste Version von nodejs verwenden, um npm zu installieren

Das obige ist der detaillierte Inhalt vonMehrere npm-Abhängigkeitspaketverwaltungsfreigaben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie teile ich Quark Netdisk mit Baidu Netdisk? Wie teile ich Quark Netdisk mit Baidu Netdisk? Mar 14, 2024 pm 04:40 PM

Quark Netdisk und Baidu Netdisk sind beide sehr praktische Speichertools. Viele Benutzer fragen sich, ob diese beiden Softwareprogramme kompatibel sind. Wie teile ich Quark Netdisk mit Baidu Netdisk? Auf dieser Website erfahren Sie ausführlich, wie Sie Quark Network Disk-Dateien auf der Baidu Network Disk speichern. So speichern Sie Dateien von Quark Network Disk auf Baidu Network Disk Methode 1. Wenn Sie wissen möchten, wie Sie Dateien von Quark Network Disk auf Baidu Network Disk übertragen, laden Sie zunächst die Dateien herunter, die auf Quark Network Disk gespeichert werden müssen, und öffnen Sie sie dann Wählen Sie im Baidu Network Disk-Client den Ordner aus, in dem die komprimierte Datei gespeichert werden soll, und doppelklicken Sie, um den Ordner zu öffnen. 2. Klicken Sie nach dem Öffnen des Ordners oben links im Fenster auf „Hochladen“. 3. Suchen Sie die komprimierte Datei, die auf Ihren Computer hochgeladen werden soll, und klicken Sie, um sie auszuwählen.

So teilen Sie NetEase Cloud Music mit WeChat Moments_Tutorial zum Teilen von NetEase Cloud Music mit WeChat Moments So teilen Sie NetEase Cloud Music mit WeChat Moments_Tutorial zum Teilen von NetEase Cloud Music mit WeChat Moments Mar 25, 2024 am 11:41 AM

1. Zuerst rufen wir NetEase Cloud Music auf und klicken dann auf die Software-Homepage-Oberfläche, um die Song-Wiedergabeoberfläche aufzurufen. 2. Suchen Sie dann in der Song-Wiedergabeoberfläche die Schaltfläche für die Freigabefunktion oben rechts, wie im roten Feld in der Abbildung unten gezeigt, klicken Sie, um den Freigabekanal im Freigabekanal auszuwählen, und klicken Sie auf die Option „Teilen für“. Wählen Sie unten den ersten Eintrag „WeChat Moments“ aus, mit dem Sie Inhalte für WeChat Moments freigeben können.

So verwenden Sie Redis zur Implementierung einer verteilten Transaktionsverwaltung So verwenden Sie Redis zur Implementierung einer verteilten Transaktionsverwaltung Nov 07, 2023 pm 12:07 PM

So verwenden Sie Redis zur Implementierung eines verteilten Transaktionsmanagements Einführung: Mit der rasanten Entwicklung des Internets wird die Verwendung verteilter Systeme immer weiter verbreitet. In verteilten Systemen ist das Transaktionsmanagement eine wichtige Herausforderung. Herkömmliche Methoden des Transaktionsmanagements lassen sich in verteilten Systemen nur schwer implementieren und sind ineffizient. Mithilfe der Eigenschaften von Redis können wir problemlos ein verteiltes Transaktionsmanagement implementieren und die Leistung und Zuverlässigkeit des Systems verbessern. 1. Einführung in Redis Redis ist ein speicherbasiertes Datenspeichersystem mit effizienter Lese- und Schreibleistung und umfangreichen Daten.

So teilen Sie Dateien mit Freunden auf Baidu Netdisk So teilen Sie Dateien mit Freunden auf Baidu Netdisk Mar 25, 2024 pm 06:52 PM

Vor kurzem hat der Baidu Netdisk Android-Client eine neue Version 8.0.0 eingeführt. Diese Version bringt nicht nur viele Änderungen, sondern fügt auch viele praktische Funktionen hinzu. Am auffälligsten ist unter anderem die Verbesserung der Ordnerfreigabefunktion. Jetzt können Benutzer ganz einfach Freunde einladen, beizutreten und wichtige Dateien im Beruf und im Privatleben zu teilen, was eine bequemere Zusammenarbeit und gemeinsame Nutzung ermöglicht. Wie teilen Sie die Dateien, die Sie benötigen, mit Ihren Freunden? Ich hoffe, dass Ihnen der Herausgeber dieser Website weiterhelfen kann. 1) Öffnen Sie die Baidu Cloud APP, wählen Sie zuerst den entsprechenden Ordner auf der Startseite aus und klicken Sie dann auf das Symbol [...] in der oberen rechten Ecke der Benutzeroberfläche (wie unten gezeigt). 2) Klicken Sie dann auf [+]. Klicken Sie auf die Spalte „Gemeinsame Mitglieder“ 】 und markieren Sie abschließend alle

Bei der CentOS-Installation gnuplot und der CentOS-Installation Sunflower fehlen Abhängigkeiten Bei der CentOS-Installation gnuplot und der CentOS-Installation Sunflower fehlen Abhängigkeiten Feb 13, 2024 pm 11:39 PM

LINUX ist ein weit verbreitetes Betriebssystem, das in hohem Maße anpassbar und stabil ist. CentOS ist ein kostenloses Open-Source-Betriebssystem, das auf dem Quellcode von Red Hat Enterprise Linux (RHEL) basiert. Es wird häufig in CentOS-Installationssoftware verwendet Pakete unter CentOS sind eine der häufigsten Aufgaben im täglichen Gebrauch. In diesem Artikel wird erläutert, wie man Gnuplot unter CentOS installiert und das Problem fehlender Abhängigkeiten der Sunflower-Software löst. Gnuplot ist ein leistungsstarkes Zeichentool, das verschiedene Arten von Diagrammen erstellen kann, einschließlich zweidimensionaler und dreidimensionaler Datenvisualisierung. Um Gnuplot auf CentOS zu installieren, können Sie die folgenden Schritte ausführen: 1.

Teilen des Mango TV-Mitgliedskontos 2023 Teilen des Mango TV-Mitgliedskontos 2023 Feb 07, 2024 pm 02:27 PM

Mango TV bietet verschiedene Arten von Filmen, Fernsehserien, Varietés und anderen Ressourcen, und Benutzer können frei wählen, ob sie diese ansehen möchten. Mango TV-Mitglieder können nicht nur alle VIP-Dramen ansehen, sondern auch die höchste Bildqualität einstellen, damit Benutzer die Dramen gerne ansehen können. Nachfolgend stellt Ihnen der Herausgeber einige kostenlose Mango TV-Mitgliedskonten vor, die Sie nutzen können. Beeilen Sie sich und werfen Sie einen Blick darauf Schau mal. Kostenloses Teilen des neuesten Mitgliedskontos von Mango TV 2023: Hinweis: Dies sind die neuesten gesammelten Mitgliedskonten. Sie können sich anmelden und diese direkt verwenden. Ändern Sie das Passwort nicht nach Belieben. Kontonummer: 13842025699 Passwort: qds373 Kontonummer: 15804882888 Passwort: evr6982 Kontonummer: 13330925667 Passwort: jgqae Kontonummer: 1703

Was tun, wenn die Rechtsklick-Menüverwaltung in Windows 10 nicht geöffnet werden kann? Was tun, wenn die Rechtsklick-Menüverwaltung in Windows 10 nicht geöffnet werden kann? Jan 04, 2024 pm 07:07 PM

Wenn wir das Win10-System verwenden und mit der Maus auf den Desktop oder das Rechtsklick-Menü klicken, stellen wir fest, dass das Menü nicht geöffnet werden kann und wir den Computer nicht normal verwenden können. Zu diesem Zeitpunkt müssen wir das wiederherstellen System zur Lösung des Problems. Die Win10-Rechtsklick-Menüverwaltung kann nicht geöffnet werden: 1. Öffnen Sie zuerst unsere Systemsteuerung und klicken Sie dann auf. 2. Klicken Sie dann unter Sicherheit und Wartung auf. 3. Klicken Sie rechts, um das System wiederherzustellen. 4. Wenn die Maus immer noch nicht verwendet werden kann, prüfen Sie, ob mit der Maus selbst ein Fehler vorliegt. 5. Wenn Sie sicher sind, dass kein Problem mit der Maus vorliegt, drücken Sie + und geben Sie ein. 6. Nachdem die Ausführung abgeschlossen ist, starten Sie den Computer neu.

Lösen Sie das Problem, dass die Discuz WeChat-Freigabe nicht angezeigt werden kann Lösen Sie das Problem, dass die Discuz WeChat-Freigabe nicht angezeigt werden kann Mar 09, 2024 pm 03:39 PM

Titel: Um das Problem zu lösen, dass Discuz WeChat-Freigaben nicht angezeigt werden können, sind spezifische Codebeispiele erforderlich. Mit der Entwicklung des mobilen Internets ist WeChat zu einem unverzichtbaren Bestandteil des täglichen Lebens der Menschen geworden. Bei der Website-Entwicklung werden viele Websites WeChat-Freigabefunktionen integrieren, um das Benutzererlebnis zu verbessern und die Website-Präsenz zu erweitern, sodass Benutzer Website-Inhalte problemlos mit Moments oder WeChat-Gruppen teilen können. Allerdings kann es bei der Verwendung von Open-Source-Forumsystemen wie Discuz manchmal zu dem Problem kommen, dass WeChat-Freigaben nicht angezeigt werden können, was zu gewissen Schwierigkeiten bei der Benutzererfahrung führt.

See all articles