Abhängigkeiten vs devDependencies

Haben Sie sich jemals gefragt, was der Unterschied zwischen diesen beiden Arten von Abhängigkeiten in Ihrem package.json ist? In diesem Artikel werde ich versuchen, diese Frage mit einfachen Worten zu beantworten.

Was sind Abhängigkeiten und wofür werden sie verwendet?

Wenn Sie kein Entwickler von 2007 sind und Frameworks und Bibliotheken mithilfe von Paket-Managern installieren, sollten Sie Dependecies verwenden, auch wenn Sie nicht über diese Bescheid wussten. Stellen Sie sich vor, Sie haben mit Vue eine fantastische Website erstellt und mit npm installiert. Und Sie möchten vielleicht, dass andere Leute sehen, was für ein großartiger Entwickler Sie sind, und Sie haben Ihr Projekt in ein Github-Repo verschoben und natürlich Ihre node_modules zu einer .gitignore-Datei hinzugefügt, weil Sie ein cleverer Entwickler sind. Dann kopieren andere Leute Ihr Projekt auf ihre Computer und versuchen, es auf einem lokalen Host auszuführen, aber oopppss, nichts funktioniert ... Dies alles geschieht aufgrund von verwendetem Vue, das in unseren node_modules installiert wurde, die Sie nicht gepusht haben. Die einzige Lösung für dieses Problem ist, einfach das npm-Installationsskript in Ihrem Projektordner auszuführen

Und dies ist, wenn package.json das Spiel betritt. Dieser Befehl geht in Ihre package.json und installiert alle Frameworks und Bibliotheken, die in Ihren Abhängigkeiten erwähnt werden. Zum Beispiel werden in meinem Fall Vue und Vue-Material installiert + benötigte Pakete für eine stabile Arbeit von npm

Wie erscheinen Abhängigkeiten in Ihrer package.json?

Wenn Sie eine lib mit npm installieren, werden alle benötigten Informationen automatisch zu Abhängigkeiten hinzugefügt. Installieren wir beispielsweise Vuex mit npm install vuex --save

Vuex und alle zusätzlichen erforderlichen Pakete wurden Ihren Abhängigkeiten erfolgreich hinzugefügt.

Abhängigkeiten vs devDependencies

Und jetzt ist es an der Zeit, die Hauptfrage dieses Artikels zu beantworten: Was ist der Unterschied zwischen diesen beiden Arten von Abhängigkeiten?

devDependencies sollten Pakete enthalten, die während der Entwicklung verwendet werden oder die zum Erstellen Ihres Bundles verwendet werden, z. B. Mokka, Jscs, Grunt-Contrib-Watch, Gulp-Jade usw. Diese Pakete sind auch nur während der Entwicklung Ihres Projekts nicht erforderlich ESlint wird verwendet, um alles während der Erstellung Ihres Bundles zu überprüfen. Installieren Sie also alle diese Pakete mit dem Flag -dev. Dies sagt der npm, heeey, ich benötige diese Pakete für die Entwicklung. Dadurch werden devDependencies anstelle der üblichen Abhängigkeiten automatisch um Pakete erweitert.

Übrigens, npm install installiert standardmäßig Pakete sowohl aus Abhängigkeiten als auch aus devDependencies. Ich habe jahrelang keine Verwendung dieses Flags gesehen, aber ich werde Sie dies nur wissen lassen, bei kleinen Projekten kann dies funktionieren nur aus üblichen Abhängigkeiten.

Abhängigkeiten sollten Bibliotheken und Frames enthalten, auf denen Ihre App basiert, wie Vue, React, Angular, Express, JQuery usw. Sie stimmen mir zu, wenn ich sage, dass Ihr Projekt ohne diese Pakete nicht funktioniert (wenn Sie sie verwenden) , natürlich).

Fazit

Fazit: Verwenden Sie -dev flag, wenn Sie Pakete installieren, die Sie während der Entwicklung verwenden, und nicht, wenn das zu installierende Paket für die Produktion bestimmt ist.

Vielen Dank für das Lesen meines Artikels, klatschen Sie für diese Geschichte, um mir zu helfen, mein mittleres Profil zu erweitern, und lesen Sie meine anderen Artikel über das Programmieren: