Maven in der Java-Welt hat ein zentrales Repository und strenge Versionierung. NPM hat 200.000 Pakete, den Left-Pad-Vorfall und Dependency Hell. So überleben Sie im NPM-Ökosystem, ohne auf eine Landmine zu treten.
package.json und Semver¶
Semantic Versioning: MAJOR.MINOR.PATCH. ^1.2.3 = kompatibel mit 1.x (Standard). ~1.2.3 = nur Patch-Updates. Für die Produktion empfehlen wir exakte Versionen oder Shrinkwrap/Lockfile.
{
"dependencies": {
"express": "^4.13.3",
"lodash": "~4.17.0",
"moment": "2.11.2"
},
"devDependencies": {
"mocha": "^2.3.4",
"eslint": "^1.10.0"
}
}
npm shrinkwrap¶
npm shrinkwrap sperrt die exakten Versionen aller Abhängigkeiten (einschließlich transitiver). Es erzeugt npm-shrinkwrap.json — committen Sie es in Git. Ohne Shrinkwrap kann npm install andere Versionen auf der CI installieren als lokal.
Sicherheit¶
npm audit prüft auf bekannte Schwachstellen. Führen Sie es regelmäßig in Ihrer CI-Pipeline aus. Minimieren Sie Abhängigkeiten — jedes Paket ist ein potenzieller Angriffsvektor. Fragen Sie sich: Brauche ich wirklich eine Bibliothek für Left-Pad?
Private Registry¶
Für interne Pakete: Verdaccio (Open-Source npm Proxy/Registry), npm Enterprise oder Artifactory. Diese cachen öffentliche Pakete und hosten private.
Disziplin im Dependency Management¶
Das NPM-Ökosystem ist mächtig, aber wild. Lockfiles, Audits und minimale Abhängigkeiten sind die Grundlagen eines zuverlässigen JavaScript-Projekts.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns