40 Paketli Monorepo'da Turborepo + Bun + Biome: Tek Bir Yapılandırma Dosyasıyla Yönetim Yazılım

40 Paketli Monorepo'da Turborepo + Bun + Biome: Tek Bir Yapılandırma Dosyasıyla Yönetim

40 paketli bir monorepoda tek bir yapılandırma dosyasıyla tüm paketleri yönetmek mümkün mü? Turborepo, Bun ve Biome ile bu mümkün.

Bir monorepoda 40 paketi tek bir geliştiriciyle yönetmek ve bunu yaparken her paket için ayrı ESLint yapılandırması kullanmamak mümkün mü? İşte tam da bu noktada devreye giren Turborepo, Bun ve Biome yığını, her şeyi tek bir yapılandırma dosyasından yönetmeyi vaat ediyor. Bu yaklaşımın arkasındaki temel fikir, araç zincirindeki her aracın, 40 paketi tek bir yapılandırma dosyasıyla yöneterek yerini hak etmesi gerektiği. Bu yazıda, gerçek bir projeden alınan turbo.json, biome.json ve CI guardrail yapılandırmalarını inceleyerek bu yığının nasıl çalıştığını adım adım göreceğiz.

flare-engine adlı bu proje, React Native ve Web için modüler bir 2D motor. Animasyon, oyunlaştırma ve etkileşimli UI gibi özellikler sunarken, bir oyun motoru olma iddiasında değil. Projenin temelinde ise üç binary var: Turborepo, Bun ve Biome. Bun, yalnızca bir paket yöneticisi değil, aynı zamanda runtime, test runner ve çalışma alanı mekanizması olarak görev yapıyor. pnpm yerine tercih edilmesinin nedeni, bu üç işlevi tek bir binary'de birleştirmesi. Projede ayrıca TypeScript 5.9.3 ve Changesets gibi araçlar da kullanılıyor.

Yapılandırma dosyalarına baktığımızda, turbo.json dosyası dört görev içeriyor: build, test, lint ve typecheck. Build görevi, bağımlılık grafiğini takip ederek önce bağımlı paketlerin build edilmesini sağlıyor. Test, build sonrası çalışıyor; lint ise tamamen paralel çalışabiliyor çünkü Biome yalnızca kendi paketinin kaynak koduna bakıyor. globalDependencies sayesinde, biome.json veya tsconfig.base.json gibi kök yapılandırmalar değiştiğinde tüm paketlerin önbelleği geçersiz kılınıyor. Bu sayede, her paket kendi yapılandırmasını taşımak zorunda kalmıyor ve tek bir değişiklik tüm projeyi etkiliyor.

Gelecekte Ne Bekleniyor?

Sonuç olarak, bu yaklaşım sayesinde bir geliştirici, 40 paketli bir monorepoyu sorunsuz bir şekilde yönetebiliyor. Her paket, kök yapılandırmaları genişletiyor ve kendi varyantlarını oluşturmuyor. Bu da projenin bakımını kolaylaştırırken, ölçeklenebilirliğini artırıyor. Eğer siz de büyük bir monorepo projesi yönetiyorsanız, Turborepo, Bun ve Biome yığını, size de benzer faydalar sağlayabilir. Unutmayın, her araç yerini hak etmeli ve tek bir yapılandırma dosyasıyla tüm paketleri yönetmek, gerçek bir monorepo deneyimi sunuyor.

Paylaş: