Abhängigkeitsverwaltung und Versionierung in Monorepos
Lernen Sie, wie Sie gemeinsame Abhängigkeiten, die Versionierung interner Pakete und einheitliche Tools in einem großen Monorepo verwalten, damit Builds reproduzierbar und konfliktfrei bleiben.
Abhängigkeitsverwaltung und Versionierung in Monorepos ist eine kostenlose Git Advanced: Monorepo, Submodules & Workflows-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Git Advanced: Monorepo, Submodules & Workflows-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Git Advanced: Monorepo, Submodules & Workflows-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
Why Dependency Management Matters
In a monorepo, dozens of projects share a single tree. Without discipline, you end up with three different versions of the same library coexisting, bloating bundles and causing subtle bugs.
Centralized dependency management gives you one source of truth for versions, making upgrades and security patches a single coordinated change instead of dozens of scattered ones.
Single-Version Policy
A common monorepo strategy is the single-version policy: every project depends on exactly one version of each third-party library.
- Eliminates version skew between teams
- Forces upgrades to be evaluated holistically
- Simplifies the dependency graph for build tools
The tradeoff: an upgrade can require changes across many projects at once.
Workspaces in Practice
Package managers like npm, yarn, and pnpm support workspaces: a top-level config that hoists shared dependencies and links internal packages locally.
{
"name": "my-monorepo",
"private": true,
"workspaces": [
"packages/*",
"apps/*"
]
}Linking Internal Packages
Internal packages reference each other by name, not by relative path. The package manager symlinks them so a change in one is immediately visible in another.
{
"name": "@acme/web-app",
"dependencies": {
"@acme/ui": "workspace:*",
"@acme/utils": "workspace:*"
}
}Pinning vs. Ranges
Should you pin exact versions or allow ranges?
- Exact pins (
1.4.2) give reproducible builds but require manual bumps. - Ranges (
^1.4.0) auto-pick patches but risk drift.
In monorepos, prefer exact pins plus a lockfile so every machine resolves identical trees.
The Lockfile Is Sacred
The lockfile (package-lock.json, yarn.lock, pnpm-lock.yaml) records the exact resolved tree. Commit it, review changes to it, and never hand-edit it.
A surprising lockfile diff during code review is often the first sign of an unintended dependency change.
Catalogs and Centralized Versions
Modern tools support catalogs: a central list of versions referenced by name across packages, so you bump one place instead of many.
# pnpm-workspace.yaml
catalog:
react: 18.3.1
typescript: 5.4.5
# in a package.json
# "react": "catalog:"Versioning Internal Releases
When internal packages are published externally, you need a release process. Tools like Changesets let contributors declare the impact of a change, then compute the next semver bump automatically.
# .changeset/brave-lions-jump.md
---
"@acme/ui": minor
"@acme/utils": patch
---
Add new Button variant and fix date helper.Detecting Drift
Drift happens when versions silently diverge. Add a CI check that fails the build if duplicate versions of a critical dependency appear.
# Fail if more than one version of react is resolved
npm ls react --all | grep -c 'react@' Coordinated Upgrades
Upgrade a shared dependency in one branch, run the affected projects' tests, and merge atomically. This avoids the half-migrated state where some apps are on the new version and some are not.
Automation bots can open these upgrade PRs and let CI prove safety before merge.
Auditing for Security
Because versions are centralized, a single audit run covers the whole repo. Wire it into CI so vulnerable transitive dependencies block merges.
pnpm audit --audit-level=highQuick Check
Test your understanding of monorepo dependency management.
Recap
You learned how monorepos keep dependencies sane: a single-version policy, workspaces for linking internal packages, catalogs for centralized versions, a sacred lockfile, drift detection in CI, and coordinated, auditable upgrades.
Disciplined dependency management is what keeps a large monorepo reproducible and trustworthy.
Häufig gestellte Fragen
Ist die Lektion „Abhängigkeitsverwaltung und Versionierung in Monorepos“ kostenlos?
Ja — der vollständige Text von „Abhängigkeitsverwaltung und Versionierung in Monorepos“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Git Advanced: Monorepo, Submodules & Workflows-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Git Advanced: Monorepo, Submodules & Workflows-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Abhängigkeitsverwaltung und Versionierung in Monorepos“?
Lernen Sie, wie Sie gemeinsame Abhängigkeiten, die Versionierung interner Pakete und einheitliche Tools in einem großen Monorepo verwalten, damit Builds reproduzierbar und konfliktfrei bleiben. Du übst Git Advanced: Monorepo, Submodules & Workflows mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Git Advanced: Monorepo, Submodules & Workflows zu starten?
Keine Vorkenntnisse erforderlich. Git Advanced: Monorepo, Submodules & Workflows auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Abhängigkeitsverwaltung und Versionierung in Monorepos“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Git Advanced: Monorepo, Submodules & Workflows-Lektion Code schreiben und ausführen?
Ja. Jede Git Advanced: Monorepo, Submodules & Workflows-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Code-Ownership und Zugriffskontrolle
- Build- und Testleistung optimieren
- Strategien zur Monorepo-Migration
- Abhängigkeitsverwaltung und Versionierung in Monorepos