{"id":696,"date":"2023-05-05T09:00:00","date_gmt":"2023-05-05T07:00:00","guid":{"rendered":"https:\/\/rising-bits.com\/?p=696"},"modified":"2023-04-28T10:25:13","modified_gmt":"2023-04-28T08:25:13","slug":"die-wichtigkeit-der-korrekten-dependency-verwaltung-in-node-js-projekten","status":"publish","type":"post","link":"https:\/\/rising-bits.com\/en\/die-wichtigkeit-der-korrekten-dependency-verwaltung-in-node-js-projekten\/","title":{"rendered":"Die Wichtigkeit der korrekten Dependency-Verwaltung in Node.js-Projekten"},"content":{"rendered":"<p><a href=\"https:\/\/nodejs.org\/en\">Node.js<\/a> ist eine Plattform, die es erm\u00f6glicht, serverseitige Anwendungen in JavaScript zu schreiben. Eine wichtige Komponente eines Node.js-Projekts sind Dependencies, die in der package.json-Datei gespeichert werden. Dependencies sind Code-Bibliotheken oder -Module, auf die das Projekt angewiesen ist, um richtig zu funktionieren.<\/p>\n\n\n\n<p>Es gibt verschiedene Arten, wie man die Version einer Dependency in einem Node.js-Projekt festlegen kann:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Festlegen einer exakten Version: Mit dieser Methode wird eine bestimmte Version einer Dependency festgelegt, z.B. &#8222;<a href=\"https:\/\/www.npmjs.com\/package\/axios\">axios<\/a>&#8222;: &#8222;1.4.0&#8220;. Dies bedeutet, dass das Projekt nur mit dieser spezifischen Version der Dependency arbeitet.<\/li>\n\n\n\n<li>Festlegen einer Mindestversion: Mit dieser Methode wird eine bestimmte Mindestversion einer Dependency festgelegt, z.B. &#8222;axios&#8220;: &#8222;^1.4.0&#8220;. Das &#8222;^&#8220; Zeichen bedeutet, dass das Projekt mit jeder Version der Dependency arbeiten kann, die gr\u00f6\u00dfer oder gleich 1.4.0 ist.<\/li>\n\n\n\n<li>Festlegen einer Bereichsversion: Mit dieser Methode wird ein Bereich von Versionen einer Dependency festgelegt, z.B. &#8222;axios&#8220;: &#8222;>=1.3.4 &lt;1.4.0&#8220;. Dies bedeutet, dass das Projekt mit jeder Version der Dependency arbeiten kann, die gr\u00f6\u00dfer oder gleich 1.3.4 und kleiner als 1.4.0 ist.<\/li>\n<\/ol>\n\n\n\n<p>Es ist wichtig zu verstehen, dass Dependencies und devDependencies unterschiedliche Rollen in einem Node.js-Projekt haben. Dependencies werden ben\u00f6tigt, damit das Projekt richtig funktioniert, w\u00e4hrend devDependencies f\u00fcr die Entwicklung des Projekts ben\u00f6tigt werden. devDependencies k\u00f6nnen Test-Frameworks, Build-Tools oder Linters sein, die helfen, den Code zu verbessern und Fehler zu vermeiden. devDependencies werden normalerweise nicht in der Produktionsumgebung verwendet.<\/p>\n\n\n\n<p>Um eine Dependency in der package.json-Datei als devDependency zu markieren, wird das &#8222;dev&#8220; Flag verwendet, z.B. &#8222;<a href=\"https:\/\/www.npmjs.com\/package\/eslint\">eslint<\/a>&#8222;: &#8222;^8.38.0&#8220; kann in &#8222;devDependencies&#8220; als &#8222;eslint&#8220;: &#8222;^8.38.0&#8220; ge\u00e4ndert werden.<\/p>\n\n\n\n<p>Damit die letzte Version Abh\u00e4ngigkeit dem Projekt hinzugef\u00fcgt wird, kann man folgenden Befehl in der Befehlszeile im Projektverzeichnis ausf\u00fchren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">npm install eslint --save-dev<\/code><\/pre>\n\n\n\n<p>Wenn man eine spezifische Version von eslint installieren m\u00f6chte, kannst man den Befehl mit der entsprechenden Versionsnummer wie folgt ausf\u00fchren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">npm install eslint@&lt;version> --save-dev<\/code><\/pre>\n\n\n\n<p>Der Zusatz <code>--save-dev<\/code> wei\u00dft <code>npm<\/code> an, dass es in der Kategorie devDependency gespeichert wird.<\/p>\n\n\n\n<p>In der package.json-Datei k\u00f6nnen Dependencies und devDependencies aufgelistet werden, zusammen mit den jeweiligen Versionen und der Art der Dependency. Mit diesem Wissen k\u00f6nnen Entwickler sicherstellen, dass ihre Projekte immer mit den ben\u00f6tigten Bibliotheken und Werkzeugen arbeiten, um ein reibungsloses Entwicklungs- und Produktionsprozess zu gew\u00e4hrleisten.<\/p>\n\n\n\n<p>Um die Abh\u00e4ngigkeiten zu installieren f\u00fchrt man folgenden Befehl aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">npm install<\/code><\/pre>\n\n\n\n<p>Anbei noch eine vollst\u00e4ndige package.json mit den o.g. Abh\u00e4ngigkeiten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">{\n  \"name\": \"my-project\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Description of project\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"start\": \"node index.js\"\n  },\n  \"dependencies\": {\n    \"axios\": \"^1.4.0\"\n  },\n  \"devDependencies\": {\n    \"eslint\": \"^8.38.0\"\n  }\n}<\/code><\/pre>","protected":false},"excerpt":{"rendered":"<p>Node.js ist eine Plattform, die es erm\u00f6glicht, serverseitige Anwendungen in JavaScript zu schreiben. Eine wichtige Komponente eines Node.js-Projekts sind Dependencies, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":699,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[125],"tags":[127,128,126,129,130],"class_list":["post-696","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-node-js","tag-dependencies","tag-devdependencies","tag-node-js","tag-package-json","tag-versioning"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/mlmwwmq2k3up.i.optimole.com\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/i0.wp.com\/rising-bits.com\/wp-content\/uploads\/2023\/05\/Node.js-Dependencies.png?fit=4457%2C1776&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rising-bits.com\/en\/wp-json\/wp\/v2\/posts\/696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rising-bits.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rising-bits.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rising-bits.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rising-bits.com\/en\/wp-json\/wp\/v2\/comments?post=696"}],"version-history":[{"count":2,"href":"https:\/\/rising-bits.com\/en\/wp-json\/wp\/v2\/posts\/696\/revisions"}],"predecessor-version":[{"id":698,"href":"https:\/\/rising-bits.com\/en\/wp-json\/wp\/v2\/posts\/696\/revisions\/698"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rising-bits.com\/en\/wp-json\/wp\/v2\/media\/699"}],"wp:attachment":[{"href":"https:\/\/rising-bits.com\/en\/wp-json\/wp\/v2\/media?parent=696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rising-bits.com\/en\/wp-json\/wp\/v2\/categories?post=696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rising-bits.com\/en\/wp-json\/wp\/v2\/tags?post=696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}