In einem Knotenprojekt habe ich zwei Arten von Abhängigkeiten gefunden:
%Vor% Ich weiß, dass der Autor es über npm install babel-core --save -dev
Aber wofür ist das? Wenn Sie Ihren Code drücken, ist das devDependencies
-Modul immer noch da.
Dieser Artikel gibt eine ziemlich gute Erklärung für den Unterschied zwischen den beiden:
Snippets aus dem Artikel:
%Vor%Wenn Sie in npm veröffentlichen, ist es wichtig, dass Sie das richtige Flag für die richtigen Module verwenden. Wenn das npm-Modul funktionieren soll, verwenden Sie das Flag "--save", um das Modul als Abhängigkeit zu speichern. Wenn Ihr Modul nicht funktionieren muss, aber zum Testen benötigt wird, verwenden Sie das Flag "--save-dev".
%Vor%Wenn Sie nicht in npm veröffentlichen, ist es technisch egal, welches Flag Sie verwenden. Ich finde es jedoch eine gute Übung, das Flag "--save" für Module zu verwenden, die Nicht-Standard-Code in die Quelldateien einbringen. Verwenden Sie dann das Flag "--sav-dev" für Module, die für Ihren Compiler benötigt werden.
%Vor%Der Hauptunterschied zwischen den beiden ist:
-in devdependencies, Entwickler anpassen oder ändern das Knotenpaket entsprechend der Anforderung. Zum Beispiel, während wir grunt task machen, ändern wir die Aufgabe nach Bedarf in Gruntfile, genau wie bei babel, das Sie verwenden.
-in Abhängigkeiten, verwenden Entwickler direkt das Knotenpaket ohne die Änderung ex-express.
Hoffentlich löscht es deine Zweifel.
Abhängigkeiten von Dev-Abhängigkeiten
Dev-Abhängigkeiten sind Module, die nur während der Entwicklung benötigt werden, während Abhängigkeiten zur Laufzeit benötigt werden. Wenn Sie Ihre Anwendung bereitstellen, müssen Abhängigkeiten installiert werden, sonst funktioniert Ihre App einfach nicht. Bibliotheken, die Sie aus Ihrem Code aufrufen, der die Ausführung des Programms ermöglicht, können als Abhängigkeiten betrachtet werden.
Eg- Reagieren, reagieren - dom
Dev-Abhängigkeitsmodule müssen nicht auf dem Produktionsserver installiert werden, da Sie nicht in dieser Maschine entwickeln. .compiler, die Ihren Code in Javascript, Test-Frameworks und Dokumentgeneratoren umwandeln, können als Dev-Abhängigkeiten betrachtet werden, da sie nur benötigt werden Entwicklung.
ZB ESLint, Babel, Webpack