Pro programátory

Dependency files - jak je porovnávat a nepřijít o rozum

10. ledna 2026
7 min čtení
dependenciesPythonJavaScriptpackage management

Dependency management je věc, která mě dostává. Změny v requirements.txt nebo package.json můžou způsobit breaking changes, security díry nebo konflikty verzí. A ty to zjistíš až na produkci.

Proč to porovnávám

  • Version upgrades - co se vlastně aktualizovalo?
  • Security - jsou tam vulnerable packages?
  • Bloat - nepřibyly zbytečné závislosti?
  • Konflikty - nekompatibilní verze?
  • Audit trail - proč byla závislost přidána/odebrána?

requirements.txt (Python)

  • Plain text s package names a verzemi
  • pip freeze vygeneruje aktuální stav
  • Virtual environments izolují projekty
  • Pinned verze (==) vs ranges (>=)
  • Tranzitivní závislosti často nejsou listed

package.json (JavaScript)

  • JSON formát
  • dependencies vs devDependencies vs peerDependencies
  • npm install podle lock file
  • Semantic versioning s caret (^) a tilde (~)
  • node_modules = nested dependencies

Version changes - na co si dát pozor

  • Major (X.0.0) - může obsahovat breaking changes
  • Minor (0.X.0) - nové features, zpětně kompatibilní
  • Patch (0.0.X) - bug fixy

Lock files jsou kritické:

  • package-lock.json
  • poetry.lock
  • yarn.lock

Diffuj je taky!

Security scanning

  • npm audit / pip-audit - scanning vulnerabilities
  • Dependabot / Renovate - automatické updates
  • GitHub Security Alerts - notifikace
  • CVE databáze - known vulnerabilities

Pravidelně updateovat. Staré závislosti = security riziko.

Dependency konflikty

Typický problém: dva packages vyžadují různé verze téhož dependency.

Co s tím:

  • Najít kompatibilní version range
  • Vyřešit peer dependency warningy
  • Lock file merge konflikty
  • Testovat po každé změně

Best practices

  1. Pinuj kritické závislosti - stabilita
  2. Používej lock files - reproducible builds
  3. Pravidelně updateuj - security patches
  4. Audituj nové závislosti - co přidáváš?
  5. Dokumentuj proč - u každé závislosti
  6. Odstraňuj nepoužívané - cleanup

Co používám

  • pip-compile - Python dependency resolution
  • npm list / yarn why - dependency tree
  • JSON Diff - pro package.json
  • Libraries.io - tracking updates
  • CI/CD checky v pipeline

Dependency management není sexy, ale ušetří ti hodně problémů. Lepší 5 minut diffu než 5 hodin debugování.

Potřebuješ porovnat package.json mezi větvemi? Hoď to do JSON Diff.

Vyzkoušejte PorovnejText.cz zdarma

Nejrychlejší český nástroj pro porovnání textů. Vše probíhá ve vašem prohlížeči, žádná registrace není potřeba.

Porovnat texty nyní →