Tema
İzin verilen paketler
Temalar sınırlı bir npm paketi kümesini içe aktarabilir. Liste kısa tutulur; sebebi aşağıda.
Liste
| Paket | Ne için |
|---|---|
react, react-dom, react/jsx-runtime | Çalışma anında vitrinden gelir |
winkwop-theme-sdk | Mağaza verisi → SDK |
clsx | Koşullu className birleştirme |
tailwind-merge | Çakışan Tailwind sınıflarını sadeleştirme |
embla-carousel-react | Karusel / kaydırmalı galeri |
motion | Animasyon |
Alt yollar da çalışır (embla-carousel-react/plugins gibi).
tsx
import clsx from 'clsx';
import useEmblaCarousel from 'embla-carousel-react';Neden sınırlı?
Tema kodu her ziyaretçinin tarayıcısında çalışır. Serbest npm, zararlı tek bir paketin tüm mağazaların müşterilerine ulaşması demektir.
Derlemenin bizde ve ağsız olması ayrıca platformun ilerlemesini sağlıyor: React sürümü ya da SDK çalışma ortamı değiştiğinde tüm temaları yeniden derleyebiliyoruz. Derlenmiş paket yüklenseydi her değişiklikte her partnerin yeniden deploy etmesi gerekirdi; etmeyenlerin teması çürürdü.
React'i asla paketlemeyin
react içe aktarımınız vitrinin React'ine bağlanır. İkinci bir kopya paketlenirse hook'lar sessizce bozulur — bu yüzden React derleme sırasında paketlenmez, çalışma anında sağlanır.
Listede olmayan bir şey gerekiyorsa
Önce kopyalamayı düşünün. İhtiyaçların çoğu birkaç satırlık yardımcıdır (slugify, debounce, sayı formatlama). src/lib/ altına koyduğunuz kod sizin dosyanızdır ve normal şekilde derlenir — izin listesiyle işi yoktur.
Gerçekten paket gerekiyorsa (karmaşık bir takvim, ödeme widget'ı, ağır bir grafik kütüphanesi) bize yazın. Liste kod değil veri: paket eklemek bizim tarafımızda tek satırlık bir değişiklik.
Bunu isterken şunları belirtin: paket adı, sürüm, ne için kullanacağınız ve gzip'li boyutu. Paket temanızın içine gömüleceği için boyut doğrudan mağazanın açılış hızına yazılır.
Hata mesajı
İzinsiz bir paketi içe aktarırsanız derleme şu hatayla durur:
"lodash" paketi tema derlemesinde kullanılamaz.
İzin verilenler: React, clsx, tailwind-merge, embla-carousel-react, motion
ve kendi dosyalarınız. Küçük yardımcıları src/lib/ altına kopyalayabilirsiniz;
başka bir paket gerekiyorsa bize yazın.Bu hata deploy sırasında çıkar, yani mağazalara yansımadan önce.