Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

NPM — správa závislostí v JavaScript ekosystému

28. 01. 2015 1 min čtení CORE SYSTEMSdevelopment

Maven v Javě má centrální repository a přísné verzování. NPM má 200 000 balíčků, left-pad incident a dependency hell. Jak přežít v NPM ekosystému a nešlápnout na minu.

package.json a semver

Semantic versioning: MAJOR.MINOR.PATCH. ^1.2.3 = kompatibilní s 1.x (default). ~1.2.3 = patch only. Pro produkci doporučujeme přesné verze nebo 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 zamkne přesné verze všech závislostí (včetně tranzitivních). Generuje npm-shrinkwrap.json — commitujte do gitu. Bez shrinkwrap může npm install nainstalovat jiné verze na CI než lokálně.

Bezpečnost

npm audit kontroluje známé zranitelnosti. Pravidelně spouštějte v CI pipeline. Minimalizujte závislosti — každý balíček je potenciální útočný vektor. Vyhodnoťte: potřebuji opravdu knihovnu pro left-pad?

Private registry

Pro interní balíčky: Verdaccio (open-source npm proxy/registry), npm Enterprise, nebo Artifactory. Cachuje veřejné balíčky a hostuje privátní.

Disciplína v dependency management

NPM ekosystém je mocný ale divoký. Lockfiles, audit, minimální závislosti — základy pro spolehlivý JavaScript projekt.

awsfrontendec2s3