npm paketlerini kullanma
Uygulamanızda herhangi bir npm paketini yükleyip kullanabilirsiniz. Hem mantık işlevleri hem de ön uç bileşenleri, tüm bağımlılıkları çıktıya satır içi olarak ekleyen esbuild ile paketlenir — çalışma zamanındanode_modules gerekmez.
Bir paketi yükleme
src/logic-functions/fetch-data.ts
src/front-components/chart.tsx
Paketleme nasıl çalışır
Derleme adımı, her mantık işlevi ve her ön uç bileşeni için tek bir bağımsız dosya üretmek üzere esbuild kullanır. Tüm içe aktarılan paketler pakete satır içi eklenir. Mantık işlevleri, Node.js ortamında çalışır. Node yerleşik modülleri (fs, path, crypto, http vb.) kullanılabilir ve kurulmaları gerekmez.
Ön uç bileşenleri, bir Web Worker içinde çalışır. Node’un yerleşik modülleri kullanılamaz — yalnızca tarayıcı ortamında çalışan npm paketleri kullanılabilir. Korumalı alanın kısmi bir DOM uyguladığını unutmayın; bu nedenle bir paket hatasız derlenip çalışma zamanında yine de başarısız olabilir. Bkz. Geçerli kısıtlamalar.
Her iki ortamda da twenty-client-sdk/core ve twenty-client-sdk/metadata önceden sağlanmış modüller olarak mevcuttur — bunlar paketlenmez, ancak çalışma zamanında sunucu tarafından çözülür.
Kurulum
İskelet aracıyla oluşturulan uygulama zaten Vitest’i içerir. Manuel kurulum yaparsanız, bağımlılıkları yükleyin:vitest.config.ts oluşturun:
vitest.config.ts
~/.twenty/config.test.json) yazan ve testler çalışmadan önce uygulamayı eşitleyen genel bir kurulum dosyası oluşturun:
src/__tests__/global-setup.ts
Programatik SDK API’leri
twenty-sdk/cli alt yolu, test kodundan doğrudan çağırabileceğiniz fonksiyonları dışa aktarır:
Her fonksiyon,
success: boolean ile birlikte data veya error içeren bir sonuç nesnesi döndürür.
Bir entegrasyon testi yazma
İşte uygulamayı derleyen, dağıtan ve yükleyen; ardından çalışma alanında göründüğünü doğrulayan tam bir örnek:src/__tests__/app-install.integration-test.ts
Testleri çalıştırma
Yerel Twenty sunucunuzun çalıştığından emin olun, ardından:Tip denetimi
Ayrıca testleri çalıştırmadan uygulamanızda tip denetimi çalıştırabilirsiniz:tsconfig.json dosyasına göre tsc --noEmit komutunu çalıştırır ve tüm tip hatalarını raporlar. İskelet olarak oluşturulan uygulamalar ayrıca test dosyalarını da kapsayan (tsconfig.spec.json) bir yarn typecheck betiği ile birlikte gelir.
GitHub Actions ile CI
İskelet oluşturucu,.github/workflows/ci.yml konumunda kullanıma hazır bir iş akışı üretir. main dalına yapılan her itmede ve her çekme isteğinde, çalıştırıcı içinde geçici bir Twenty sunucusu başlatır (twentyhq/twenty/.github/actions/spawn-twenty-app-dev-test eylemi aracılığıyla) ve ardından yarn lint, yarn typecheck, yarn test:unit ve yarn test komutlarını, TWENTY_API_URL / TWENTY_API_KEY bu sunucuyu işaret edecek şekilde çalıştırır. Herhangi bir gizli bilgi gerekmez ve iş akışının en üstündeki TWENTY_VERSION ortam değişkeni aracılığıyla sunucu sürümünü sabitleyebilirsiniz.
Üç iskelet iş akışının (ci.yml, cd.yml dağıtım hattı ve npm yayınlama için publish.yml) eksiksiz adım adım anlatımı için Yayınlama → Otomatik CI/CD bölümüne bakın.