Nx Nedir?
İngilizce: Nx
Nx, 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.
Nx Nedir?
Nx, monorepo içinde birden fazla uygulama ve kütüphaneyi yönetmek için kullanılan geliştirme araç takımıdır. Projeler arasındaki bağımlılıkları analiz eder, hangi işlerin etkilenmiş olduğunu hesaplar ve build/test/lint gibi görevleri önbellekleme ile hızlandırır.
Büyük ekiplerde aynı depoda web uygulaması, mobil uygulama, backend servisleri ve paylaşılan UI kütüphaneleri bulunabilir. Nx bu yapıda her değişiklikte tüm depoyu yeniden build etmek yerine yalnızca etkilenen parçaları çalıştırmaya odaklanır.
Nasıl Çalışır?
- Project graph: Uygulama ve kütüphaneler arasındaki bağımlılıkları çıkarır.
- Affected komutları: Bir değişiklikten hangi projelerin etkilendiğini belirler.
- Task cache: Aynı girdiyle daha önce çalışmış görevlerin çıktısını tekrar kullanır.
- Plugin sistemi: React, Angular, Node, Next.js ve başka ekosistemler için hazır yürütücüler sağlar.
- Generator’lar: Standart proje, kütüphane ve bileşen yapıları oluşturur.
İş Dünyasında Kullanımı
Nx, çok ürünlü ekiplerde ortak kod paylaşımını ve CI sürelerini yönetmek için kullanılır. Tasarım sistemi, API istemcisi, doğrulama şemaları veya ortak yardımcı kütüphaneler tek depoda tutulduğunda sürüm uyumsuzluğu azalır.
Monorepo yapısı disiplin ister; sahiplik, klasör sınırları ve bağımlılık kuralları belirlenmezse depo hızla karmaşıklaşabilir. Turborepo benzer şekilde görev önbellekleme ve pipeline yönetimi sunar; Nx daha zengin proje grafı ve generator ekosistemiyle öne çıkar.