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.