Manajemen Dependensi dan Pembuatan Versi di Monorepo
Pelajari cara menangani dependensi bersama, pembuatan versi paket internal, dan perkakas yang konsisten di monorepo besar agar build dapat direproduksi dan bebas konflik.
Manajemen Dependensi dan Pembuatan Versi di Monorepo adalah pelajaran Git Advanced: Monorepo, Submodules & Workflows gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Git Advanced: Monorepo, Submodules & Workflows, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Git Advanced: Monorepo, Submodules & Workflows mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
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.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Manajemen Dependensi dan Pembuatan Versi di Monorepo” gratis?
Ya — teks lengkap “Manajemen Dependensi dan Pembuatan Versi di Monorepo” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Git Advanced: Monorepo, Submodules & Workflows, upgrade ke CoddyKit PRO. Kursus Git Advanced: Monorepo, Submodules & Workflows mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Manajemen Dependensi dan Pembuatan Versi di Monorepo”?
Pelajari cara menangani dependensi bersama, pembuatan versi paket internal, dan perkakas yang konsisten di monorepo besar agar build dapat direproduksi dan bebas konflik. Kamu berlatih Git Advanced: Monorepo, Submodules & Workflows dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Git Advanced: Monorepo, Submodules & Workflows?
Tidak diperlukan pengalaman sebelumnya. Git Advanced: Monorepo, Submodules & Workflows di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Manajemen Dependensi dan Pembuatan Versi di Monorepo” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Git Advanced: Monorepo, Submodules & Workflows ini?
Ya. Setiap pelajaran Git Advanced: Monorepo, Submodules & Workflows menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Kepemilikan Kode dan Pengendalian Akses
- Mengoptimalkan Kinerja Build dan Pengujian
- Strategi Migrasi Monorepo
- Manajemen Dependensi dan Pembuatan Versi di Monorepo