Turborepo Nedir?
İngilizce: Turborepo
Turborepo, monorepo içindeki görevleri bağımlılık grafiğine göre sıralayıp cache ve paralel çalışma ile build sürelerini azaltan araçtır.
Turborepo Nedir?
Turborepo, JavaScript ve TypeScript ağırlıklı monorepo’larda build, test, lint ve generate gibi görevleri daha hızlı çalıştırmak için kullanılan bir görev orkestrasyon aracıdır. Hangi paketin hangi pakete bağlı olduğunu okuyarak işleri doğru sırada ve mümkün olduğunda paralel yürütür.
Nasıl Çalışır?
Turborepo proje içindeki görevleri turbo.json ile tanımlar. Her görevin girdileri, çıktıları ve bağımlılıkları belirtilir. Aynı kaynak dosyaları ve aynı komut tekrar çalıştırıldığında sonuç cache’ten alınabilir.
Öne çıkan özellikler:
- Yerel cache: Aynı geliştirici makinesinde tekrar eden build süresini azaltır.
- Remote cache: CI ve ekip üyeleri arasında build çıktısını paylaşabilir.
- Task graph: Paket bağımlılıklarına göre doğru çalışma sırası kurar.
- Incremental execution: Sadece etkilenen paketlerin görevlerini çalıştırır.
İş Dünyasında Kullanımı
Bir monorepo içinde web uygulaması, tasarım sistemi, paylaşılan API istemcisi ve yardımcı paketler birlikte tutuluyorsa Turborepo CI/CD süresini ciddi biçimde kısaltabilir.
Araç paket sınırlarını kendiliğinden düzeltmez. Sağlıklı bağımlılık yönleri, net paket sahipliği ve doğru cache çıktıları tanımlanmadığında hızlı ama karmaşık bir repo ortaya çıkabilir.
İlgili Terimler
CI/CD, kod değişikliklerini otomatik derleme, test ve dağıtım hatlarından geçirerek sürümü tekrarlanabilir hale getiren DevOps pratiğidir.
MonorepoMonorepo, birden fazla uygulama ve paketi tek Git deposunda tutarak ortak araç, bağımlılık ve değişiklik yönetimi sağlar.
NxNx, monorepo içindeki projeleri bağımlılık grafı, hedefler ve önbellekleme ile yöneterek büyük kod tabanlarında build sürelerini azaltır.