Tasarım Çalışması için Nx'te Yeniden Özel Kütüphaneler Oluşturun
Table of Contents
Nx ve Monorepo Kavramlarını Anlamak
Modern gelişim ekipleri, tüm kodlarınızı bir araya getirerek bu zorlukların çoğunu çözüyor. Farklı depolayıcılar, Nx tarafından desteklenen bir monorepo, kütüphaneleri paylaşmanıza ve mimari kısıtlamaları çalıştırmanıza izin veriyor.Ana fikir, kodunuzu tüm kod için birleşik bir çalışma alanı sağlayarak bu zorlukların çoğunu tedavi etmektir.[0]
Nx, Angular, Reaktör ve Node.js ile jeneratörler, executors ve güçlü bir bağımlılık grafiğini genişletiyor. Tasarımcılar ve geliştiriciler için, yeniden kullanılabilir kütüphaneler oluşturmak için yeteneği, en etkili özelliklerinden biridir. Bir özellik kütüphane, tüm işlev formunun bir kısmını oluşturur ve tasarım iş akışınızı hızlandırmanız için bir arama çubuğu gibi.
Reusable Feature Library nedir?
Nx'te yeniden kullanılabilir bir özellik kütüphanesi bir yüksek çözünürlüktedir:0) Kendi kendine özgü modüller (FLT:1), belirli bir kullanıcı arayüzü, mantık ve varlıklar için gerekli olan belirli bir kullanıcı arayüzüne sahiptir.Kullanım Alanları (bu parçalar veya yardımcılar) veya UI bileşeni kütüphaneleri (bu, örneğin, erişim noktaları ve ikonları gibi atomik öğelere odaklanır), özel kütüphaneler, görünüş ve davranışların nasıl göründüğünü ve davrandığını tartışır.
İyi tasarlanmış özel kütüphanelerin temel özellikleri şunlardır:
- [FONT:0)Encapsulation:[Dönetici:[Döneticiler dahil) Tüm gerekli bağımlılıklar ( CSS modülleri, SVG ikonları veya hatta yerelleştirilmiş dizeler dahil) kütüphane içinde paketlenir.
- [FONT:0]Lazy-loadable:[Dönetici:[Dönetici:0)[Döneticileri) Nx'in koduna uygun olarak, kütüphaneler ilk yükleme süreleri üzerinde yüklenebilir.
- [FONT:0)Testable:[Dönetici:[Dönetici:0) Her kütüphanenin kendi ünite, entegrasyon ve izolasyonda çalıştırılan son testlere sahip olabilir.
- [FONT:0)Versioned:[Döneticiler): Birden fazla uygulama aynı kütüphanenin farklı versiyonlarına bağlı olduğundan Nx semantik sürümleme ve yayınlanabilir kütüphaneleri destekler.
Tasarım iş akışlarında, kütüphaneler tasarım jetleri (colors, tipografi, spacing) ve tam olarak uygulanan sayfalar arasında köprü olarak hareket eder. Bir tasarımcı bir model oluşturabilir - bir görüntü, başlık, fiyat ve “Add to Cart” düğmesine - ve kütüphane ekibi bir kez inşa eder.
Özel Kütüphaneler için Nx Workspace'i Ayarlayın
Önlemler ve Kurulum
Yeniden kullanılabilir özel kütüphaneler yaratabilseniz, Nx iş alanına ihtiyacınız var. Eğer Nx'e yeniyseniz, küresel olarak Kuantum'ye yüklenerek başlayın:
[0]
Teknolojik çöpünüzü eşleşen bir başlangıç ile yeni bir çalışma alanı oluşturun. TypeScript kullanarak bir Reaktif tabanlı tasarım sistemi için:
(Allah’a) yemin ederim.
Ayrıca boş bir çalışma alanıyla başlayabilir ve çerçeveleri daha sonra ekleyebilirsiniz. Nx, birden fazla çerçeveyle monoreposu destekler, ancak tasarım tutarlılığı için iş alanı başına bir UI çerçevesi ile takılmak için en iyisidir.The CLI will ask about CI, test koşucuları, andhesr tercihleri - takımınızın mevcut aracınızla uyumlu seçenekler.For most design-merkezli projeler için, Cypress, and Vite or Webpack iyi çalışır.
Yeni bir Kütüphaneyi Gening
İş alanı hazır olduğunda, bir özellik kütüphanesi oluşturmak basit. çerçeveniz için Nx jeneratörünü kullanın.For Reaction için, komut şu:
[2]
Bayraklar belirtilmektedir:
- [FONTNT:0) S[DÜDÜT:1) - Gruplarla ilgili kütüphaneler (örneğin, [[GÜNDÜDÜDÜDÜDÜDÜDÜSÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜN
- [FONT:0] Yayımlanabilir[Dönemli[Dönemli)[Dönetici:0) - kütüphaneyi dağıtım için inşa edebilir (örneğin, npm kaydına).
- [FONT=0]))))[[Dönemli)))))))))))))))))))
Nx tüm kazanı üretiyor -[Dönetici: 16) [Dönetici: 16)) Bu, inşa / test hedefleri ve ilk bir bileşen inşa etti. Kütüphanenin 03.03.2012 tarihli bir varil dosyası sadece halka açık kalacaktır; her şey kazak ve sınırları engelliyor.
Tasarım iş akışınız Angular veya Vue içeriyorsa, Kimizdzdi biraz farklıdır (örneğin, [[DÜDÜDÜSÜSÜ), ancak kavramlar aynı kalır. ayrıntılı bir referans için, resmi [[DÜcretsiz Belgeler[DÜŞÜNCÜye Olmayanlar:0)Nx Belgeleri).
En İyilik için Özel Bir Kütüphane Oluşturun
Komplör Organizasyonu
Oluşturulan kütüphane klasöründe ([[DÜT:9)), örneğin kütüphanenin “kullanıcı profili” özelliği uygularsa, örneğin alt katlara bir dizi ayarlayabilirsiniz.
- [FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=)
- [FONT: 16) - Özel kancalar: [FONT: 16.
- [03.03.2012: 00: 00: 00|P arama veya devlet yönetimi mantığı.
- [FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=
- [FONTD: · ARAPÇI:))
Yüzey alanı, var olan en az bir şekilde kapatın. Sadece ana özellik bileşeni (örneğin, 03., 03.03.2010) ve belki de yapılandırma için bir hesaplama nesnesi. İç hizmetler saklı kalmalıdır.Bu, tüketicileri değiştirebileceği uygulama detaylarına bağlı olarak engellemelidir.
Her bir bileşen için, Storybook kullanıyorsanız bir uyarı yazın. Nx ile Storybook'u tümleştirmek iş alanı yaratırken otomatikdir ve tüm uygulama yapmadan tasarımcılar için canlı bir oyun alanı sunar.
Paylaşılan Stiller ve Temalar
Yeniden kullanılabilir bir özellik kütüphanesi, uygulama kökünden kod renklerini veya spacing değerlerini zorlamamalıdır. Bunun yerine, CSS özel özellikleri veya uygulama seviyesinde aşırılık sağlayabilecek bir tema nesnesi tanımlayın. Örneğin, kütüphane uygulamadaki her örnekle ilgili olarak bir tabloyu değiştirebilir. Nx çalışma alanları genellikle ayrı bir şekilde farklı bir şekilde tasarlanmıştır.
Tailwind gibi bir fayda-ilk CSS çerçevesini tercih ederseniz, Nx kütüphanelerdeki Tailwind konfigürasyonunu paylaşmak için yapılandırılabilir.İş alanı kökünde bir bazurlu oluşturabilir ve her kütüphane onu genişletir.Bu, kütüphaneye özgü aşırı yüklemelere izin verirken tekrarlanan konfigürasyonu azaltır.
Varlık Yönetimi
Özel kütüphaneler genellikle yer sahipleri görüntüleri, varsayılan avatarlar veya iskelet yükleme animasyonları gibi statik varlıklara ihtiyaç duyar. Kütüphanenizin klasörünü otomatik olarak ele geçirirken, Nx kopyalarını yayın için kütüphanenizin kopyaları, kütüphanenin yalnızca monorepo içinde yerel olarak tüketilirse, yol aliaslar otomatik olarak karar alır.
SVG'ler için, doğrusal Reaktör bileşenleri kullanmayı düşünün (END: 7: 7) ekstra HTTP isteklerinden kaçınmak için. Nx'in yapılandırması bunu Reaks kütüphaneleri için kutudan destekler.
Gelişen ve Yönetilen Kütüphaneler
Nx Bağımlılığı Kullanın
Nx'in en güçlü özelliklerinden biri, kütüphanelerin ve uygulamalarının birbirleriyle nasıl ilişkili olduğunu görselleştirmektir. Birkaç özellik kütüphaneler yaratarak, diagramı görmek için [[FONTT:28) gerekir. Bu, mimarinizin tabakalı olmasını sağlar ve etkinleştirir.
Nx ayrıca etiketleri ve modül sınır kurallarını uygular.ŞUYUMLAR İÇİNDEŞİYLEŞME, [[ŞUYGÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ
Versioning and Publishing
Özel kütüphaneniz birden fazla takım tarafından tüketilecek kadar istikrarlı olduğunda, sürüm bunu kullanarak [[0)Semantic Versioning) olarak işaretlenen kütüphaneler için otomatik sürüm bumps ve değişimlogları ile el ele alır.
[Üye: 9/36]
Çıktı, kütüphaneyi normal bir bağımlılık olarak kuracak, ancak en fazla performans aynı çalışma alanı içinde her şeyi tutabilir.
Hiçbir zaman dış yayınlamasanız bile, monorepo'nun içinde sürümleme değerlidir. Nx'in etkilenen komutları bir kütüphaneyi değiştirirken, yalnızca buna bağlı olan uygulamalar yeniden inşa edilir ve tekrar test edilir.Bu büyük iş alanları için CI zamanını büyük ölçüde azaltır.
Tüm Özel Kütüphaneleri Uygulamaya Bütünleştirin
Özel kütüphaneler oluşturulur ve bileşenlerle dolu olduğunda, bir uygulamaya entegre etmek, uygulamanın [[DüzgÜye Olmayanlar İçindeki Bir Bağırıklık Başvurusu için, Güncelleme: 00
{
"compilerOptions": {
"paths": {
"@myworkspace/shared/feature-library": ["libs/shared/feature-library/src/index.ts"]
}
}
}
Nx jeneratörleri genellikle bunu otomatik olarak ayarlar, ancak daha sonra oluşturduğunuz kütüphaneler için yollar ekleyebilirsiniz.
[Üye: Âdem-i İmkanı)
Kullanıcı verileri, çağrıları gibi (kullanıcılar gibi) ve Seçmeli olarak temayı bağlam yoluyla genişletin.Eğer özellik kütüphane tembel yüklenebilir modüller içeriyorsa,TELFLT:43'i kullanın veya Nx'in kodu bölmesi, doğru modül formatı ile inşa edildiğinde otomatik olarak çalışır.
Uygulamanın test edilmesi kritik. RunurFLT:44, kütüphanenin bileşenlerinin uygulama içinde doğru şekilde yapılmasını sağlamak için önemlidir.Son testler için Cypress veya Playwright kullanın; Nx'in entegrasyonunu ESFLT:45 ile birlikte kullanarak, kütüphanenin davranışını gerçekçi bir ortamda doğrulayan bileşenler testlerini ortaya çıkarmak kolaylaşır.
Yeniden kullanılabilir Kütüphaneleri Tasarımı için En İyi Uygulamalar
Gerçekten yeniden kullanılabilir özellik kütüphaneleri oluşturmak, tasarım iş akış hızınızı en üst düzeye çıkarmak için bu ilkeleri takip etmek için sadece hareketli dosyalardan daha fazlasını gerektirir:
- [FONT:0)Açık bir sözleşmeyi ifade edin:[Döntilmiş 1] Her kütüphane sınırlı bir kamu API'si ihraç etmelidir (komponentler ve büyük kancalar). İç modülleri özel tut.
- [[Dönetici:0)Katılım üzerine kompozisyon kullanın:[Döneticileri ve yuvaları, tüketicileri katı bir yapıyı zorlamak yerine davranış özelleştirmelerine izin vermek için yeniden ortaya koyarlar.
- [[Dönemli dokümanlar:[Dönemli yazılar:[Dönemli yazılar, tipdoc yorumları ve bir OKME. Tasarımcılar ve geliştiricilerin, hedefleri ve kullanım örneklerini hızlı bir şekilde anlamaları gerekir.
- [FONT:0) Tasarımlarınızı da ele alalım:[Döneticileri tasarlayabilmenin bir değişimlogunu (Renk güncellemeleri, dönüşümleri) böylece uygulama ekipleri göçleri planlayabilir.
- [FONT:0)Automate görsel regresyon testi:) Chromatic veya Percy gibi Araçlar Nx ile entegre edilmiş olmayan tarzı değişiklikleri kütüphane güncellendiğinde yakalayabilir.
- [FONT:0)Provide geri çekilme ve yükleme eyaletleri:) Bir özellik kütüphanesi iskelet ekranları veya hata sınırlarını içermelidir, böylece uygulamalar onları sıfırdan yaratmalıdır.
- [FONT:0) Hafif tut:[Dönetici: 0:1) Büyük fayda kütüphanelerini ithal etmekten kaçının (sadece birkaç işleve ihtiyacınız varsa. Ağaç yakalayın, ancak paket büyüklüğü hala zaman yük verir.
Faydaları ve Gerçek Dünya Etkisi
Nx monorepo içinde yeniden kullanılabilir özel kütüphaneler tasarlamak için hemen ve uzun vadeli avantajlar sağlar:
- [FONT:0)Accelerated prototyping: Tasarımcılar bir özellik kütüphane talep edebilir ve tüm yeni projeler için kütüphane mevcuttur.
- [[Dönetici kullanıcı deneyimi: [Dönetici:0]Her uygulama aynı bileşeni tükettiğinden, kullanıcılar aynı davranışı ve ürünlerin stilini görürler. Bu, özellikle birden çok müşteri odaklı portallarla işletmeler için değerlidir.
- [FONT:0)Redük teknik borç:[Dönetici:[Dönetici:0)Bir yerde Fixes uygulanır.Bir hata profili editöründe keşfedildiyse, kütüphane koruma yamaları onu ve tüm kullanım uygulamaları bir sürüm hata ve yeniden inşa edildikten sonra düzeltmeyi alır.
- [FONT:0)Better işbirliği:[Dönetici:[Dönetici:0)) Monorepo yapısı, tasarımcıları doğrudan yorum bileşeni uygulamaları (via Storybook) için teşvik eder ve kütüphane serbest bırakılmadan önce geri bildirim sağlar.
- [FONT:0) Hızlıca: [Dönetici:[Dönetici: 0] Yeni ekip üyeleri, tasarım sisteminin nasıl çalıştığını anlamak için mevcut özel kütüphaneleri inceleyebilir, onlarca uygulama klasörleri üzerinden avlanmak yerine.
Nx) kullanan şirketler Nx ) ile özellik geliştirme süresini% 30-50 oranında merkezileştirilmiş ortak desenler özel kütüphanelere göre yapılandırdıktan sonra ilk birkaç kütüphaneyi oluşturmak ve ilk birkaç proje sayısı hızla büyür.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Nx'teki yeniden kullanılabilir özel kütüphaneler oluşturmak sadece teknik bir egzersiz değildir - mevcut kırılma uygulamaları olmadan tasarım ve geliştirmeyi birleştiren bir stratejik harekettir.In encapsulating complete features in separate, versioned, and testable library, team can writeerate on design types without avoid of Nx's monorepo araçlama, bağımlılık yönetimi ve orkestrasyon inşa etmek, bu ölçekler inşa etmek için ideal bir platform oluşturur.
Küçük başlayın: Sık sık sık kullanılan bir özellik seçin (kullanıcı menü ile bir kullanıcı avatar, bir arama barı, bir paginated masa) ve bir kütüphane olarak inşa edin.Zaman tasarrufunu gördüğünüzde, kütüphane portföyünüzü genişletin ve burada belirtilen ilkelere bağlı olarak, tasarım iş akışınız tekrardan ziyade inovasyona odaklanmanıza olanak sağlayacaktır.
Daha fazla okuma için, [[0)Dektör kompozisyonu ([Dönetici: 1) ve [[Döneticileri için resmi rehber[Döneticileri için).