CodeBlanks Logo Icon CodeBlanks

Monorepo nedir?

Monorepo kavramını öğrenirsin.

Monorepo nedir?

Monorepo, birden fazla paketin ya da uygulamanın tek bir Git deposunda yaşamasıdır. Her paket kendi package.json'una sahiptir; ortak bağımlılıklar kök dizinden yönetilir. Çoklu depo (polyrepo) ile karşılaştırılır.

Avantajları: kod paylaşımı kolay, değişiklik tek commit'te, sürüm senkronu. Dezavantajları: depo büyür, build daha karmaşık. Bu yüzden Turborepo gibi araçlar kullanılır.

Monorepo yapısı

Tipik bir monorepo kök dizini şunları içerir: apps/ (uygulamalar), packages/ (paylaşılan kütüphaneler), package.json (kök) ve turbo.json (build ayarları). Her alt paket kendi package.json'una sahiptir.

Kök package.json, workspaces ayarı ile alt paketleri tanımlar. Bu sayede npm install tek komutla tüm bağımlılıkları kurar; çakışan sürümler tek yerde çözülür.

Uygulama Workspaces ayarı ekle

Bir kök package.json'a workspaces alanı ekle. apps/* ve packages/* dizinlerini içersin.

Başlangıç kodu

App.js
{
  "name": "my-monorepo",
  "private": true
  // workspaces alanını buraya ekle
}

Örnek çözüm

App.js
{
  "name": "my-monorepo",
  "private": true,
  "workspaces": ["apps/*", "packages/*"]
}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Monorepo neyi tek yerde tutar?

  • Yalnızca belgeleri
  • Tek paketi birden çok depoda
  • Birden çok paketi tek depoda Doğru cevap
  • Yalnızca testleri

Açıklama: Monorepo birden çok paketi tek depoda tutar.

2 Uygulamalar klasörü adı

Soru
Monorepo kökünde uygulamalar genelde ____/ klasöründe toplanır.
Cevap
Monorepo kökünde uygulamalar genelde apps/ klasöründe toplanır.

Açıklama: apps/ klasörü uygulamaları içerir.

3 Monorepo parçalarını eşleştir

Kavram Anlamı
apps/ Uygulamalar
packages/ Paylaşılan kütüphane
package.json Kök bağımlılık
turbo.json Build ayarı

Uzman bölümündeki tüm dersler