Ana içeriğe atla
Yerel uygulama geliştirme senkronizasyon etrafında döner: CLI manifestinizi yeniden oluşturur ve sunucu, onu çalışma alanınızda hâlihazırda bulunan üst verilerle karşılaştırarak yalnızca aradaki farkı uygular. Bu sayfa, hangi komuta başvurmanız gerektiğini, bir senkronizasyonun neleri değiştirdiğini nasıl okuyacağınızı ve yerel durum tutarsız göründüğünde — sırayla — ne yapmanız gerektiğini açıklar.

Hangi komut, ne zaman

Günlük yerel yinelemelerde neredeyse her zaman yarn twenty dev kullanmak istersiniz. Dağıtım ve yayımlama, sürümleri göndermek içindir, yerel döngü için değil.
Şunu yapmak istiyorsunuz…KomutNotlar
Canlı senkronizasyonla yerelde yineleyinyarn twenty devDosyalarınızı izler ve her değişiklikte senkronize eder.
Bir kez senkronize et ve çık (CI, betikler, kancalar)yarn twenty dev --onceTek bir derleme + senkronizasyon yapar ve ardından çıkar.
Değişiklikleri uygulamadan önizleyinyarn twenty dev --once --dry-runFarkı hesaplar ve yazdırır; hiçbir şey yazmaz.
Uygulamayı çalışma alanından kaldırınyarn twenty app:uninstallİstemi atlamak için --yes ekleyin.
Bir tarball’ı sunucuya gönderinyarn twenty app:publish --privatepackage.json içinde kesin olarak daha yüksek bir sürüm gerektirir — bkz. Publishing.
Pazaryerine (npm) yayımlayınyarn twenty app:publish
Dağıtılmış bir sürümü yükleyin / yükseltinyarn twenty app:installŞu anda dağıtılmış olan sürümü yükler.
Yerel sunucuyu silin ve temiz bir şekilde yeniden başlatınyarn twenty docker:resetYerel verilerin tamamını siler — son çare.

Yerel senkronizasyon için sürüm artırmaya gerek yoktur

Sıkı artan version kuralı (dağıtımda VERSION_ALREADY_EXISTS, yüklemede APP_ALREADY_INSTALLED / CANNOT_DOWNGRADE_APPLICATION) app:publish / app:install için — yani yayın yolu için — geçerlidir. yarn twenty dev, manifestinizi yerinde senkronize eder ve hiçbir zaman bir sürüm değişikliği gerektirmez, bu yüzden yineleme yapmak için package.json dosyasına dokunmanız gerekmez. Yerel bir değişikliği test etmek için kendinizi sürümü artırırken buluyorsanız, ihtiyacınız olan geliştirme döngüsü yerine yayın yolunu kullanıyorsunuz demektir.

Senkronizasyon çıktısını okuma

Her senkronizasyon, uyguladığı (veya --dry-run ile uygulayacağı) üst veri değişikliklerini yazdırır:
Metadata changes: 2 created, 1 updated, 1 deleted
  created objectMetadata rocket
  created fieldMetadata timelineActivities
  updated fieldMetadata launchedAt
  deleted pageLayout legacyTab
✓ Synced
Bu, ilk tanı aracınızdır: tam olarak hangi nesnelerin, alanların ve düzenlerin değiştiğini size bildirir; böylece bir senkronizasyonun beklediğiniz gibi davranıp davranmadığını, arayüzü kontrol etmeden önce doğrulayabilirsiniz. Bir senkronizasyon tek bir varlıkta başarısız olduğunda, hata mesajı sorunlu varlığı ve onun universalIdentifier değerini adlandırır, örneğin:
Migration action 'create' for 'fieldMetadata' (universalIdentifier: 2020...4337) failed
Bu tanımlayıcıyı, çakışanın hangisi olduğunu tahmin etmek yerine, manifestinizdeki (ve gerekirse çalışma alanındaki) varlığı bulmak için kullanın.

Değişiklikleri önizleme (dry run)

yarn twenty dev --once --dry-run, manifestinizi derler, sunucudan geçiş planını ister ve onu yazdırır — hiçbir şeyi uygulamadan. Bu, ona taahhüt etmeden önce “Bu senkronizasyon neyi değiştirir?” sorusunu yanıtlamanın güvenli yoludur.
yarn twenty dev --once --dry-run
Building manifest...
Computing metadata diff (dry run, nothing will be applied)...
Metadata changes: 1 created, 1 updated
  created fieldMetadata timelineActivities
  updated objectMetadata rocket
✓ Dry run complete for My App — no changes were applied
Bir dry run şunları yapar:
  • Hiçbir şey yazmaz — üst veri geçişi, uygulama kaydı güncellemesi, varsayılan rol/sekme değişiklikleri ve API istemcisi oluşturma işlemleri yapılmaz.
  • Gerçek bir senkronizasyonun uygulayacağı aynı farkı döndürür; böylece oluşturulan/güncellenen/silinen varlıkları en baştan inceleyebilirsiniz.
  • Riskli bir değişiklikten önce, bir yapay zekâ tarafından oluşturulan değişikliği gözden geçirirken veya beklenmedik bir değişiklik gerçekleşmek üzereyse betiğin başarısız olması gereken durumlarda kullanışlıdır.
Bir dry run yalnızca üst veri değişikliklerini önizler ve uygulamanın en az bir kez senkronize edilmiş olmasını gerektirir (böylece çalışma alanı ondan haberdar olur). Hiç senkronize edilmemiş bir uygulamaya karşı çalıştırırsanız, sunucu uygulamanın yüklü olmadığını bildirir — önce bir kez yarn twenty dev çalıştırın.

Kurtarma merdiveni

Yerel üst veriler hatalı görünüyorsa, bu adımları sırayla uygulayın ve engeliniz kalkar kalkmaz durun. Her adım bir öncekinden daha yıkıcıdır.
  1. Yeniden senkronize edin. yarn twenty dev --once komutunu tekrar çalıştırın. Senkronizasyonlar idempotenttir — temiz bir manifesti yeniden çalıştırmak güvenlidir ve çoğu zaman geçici bir aksaklığı giderir.
  2. Planı önizleyin. Bir sonraki senkronizasyonun tam olarak neyi değiştirmeyi amaçladığını, uygulamadan görmek için yarn twenty dev --once --dry-run çalıştırın.
  3. Adlandırılmış hatayı okuyun. Bir senkronizasyon başarısız olursa, iletideki üst veri türünü ve universalIdentifier değerini not alın (yukarıya bakın) ve manifestinizdeki o varlığı bulun. Bir çakışma genellikle yinelenen veya tekrar kullanılan bir tanımlayıcıya işaret eder.
  4. Kaldırın ve yeniden yükleyin. yarn twenty app:uninstall komutunu çalıştırın, ardından yeniden senkronize edin (yarn twenty dev). Bu, uygulamanın üst verilerini temiz bir başlangıçtan yeniden oluşturur ve çalışma alanınızın geri kalanını olduğu gibi bırakır.
  5. Tam sıfırlama (son çare). yarn twenty docker:reset komutunu çalıştırın, ardından yeniden tohumlayın ve yeniden senkronize edin.
yarn twenty docker:reset, yerel örneğinizdeki verilerin tamamını siler — tüm çalışma alanlarını, kayıtları ve uygulamaları. Yalnızca önceki adımlar başarısız olduktan sonra kullanın.
Bir üst veri hatasıyla mı karşılaştınız? Lütfen issue açın ve başarısız olan geçiş iletisini (üst veri türü ve universalIdentifier ile birlikte), senkronizasyondan gelen Metadata changes çıktısını ve çalıştırdığınız komutları ekleyin.

Tek bir çalışma alanında eşzamanlı senkronizasyonlardan kaçının

Senkronizasyon, üst veri geçişlerini uygular. Aynı çalışma alanına karşı aynı anda birden çok senkronizasyon, dağıtım veya yükleme işlemi çalıştırmak — örneğin, birden çok terminal veya paralel yineleme yapan yapay zekâ ajanları — bu geçişlerin iç içe geçmesine ve üst verilerin kısmen uygulanmış bir durumda kalmasına neden olabilir. Sunucu, bunu önlemek için çalışma alanı başına senkronizasyonları sıralı hâle getirir, ancak yine de hassas üst veri işlemlerini aynı anda tetiklemek yerine tek bir süreç üzerinden geçirmeniz gerekir. Geliştirmeyi birden fazla ajanla orkestre ediyorsanız, onların senkronizasyon/dağıtım/yükleme çağrılarını tek bir kuyruğa yönlendirin ki aynı anda yalnızca biri çalışsın.

Hataları birbirinden ayırma

Bir şeyler ters gittiğinde, üst veri farkı ve adlandırılmış hatalar, hatanın nerede oluştuğunu belirlemenizi sağlar:
  • Manifest derleme hatası — CLI, senkronizasyondan önce başarısız olur (MANIFEST_BUILD_FAILED, TYPECHECK_FAILED); uygulama kaynağınızı düzeltin.
  • Senkronizasyon / geçiş hatası — derleme başarılı olur ancak farkı uygulama işlemi, varlığı ve universalIdentifier değerini adlandırarak başarısız olur; çakışan üst veriyi düzeltin.
  • Uygulama kodu çalışma zamanı hatası — senkronizasyon başarılı olur ancak mantık fonksiyonlarınız veya bileşenleriniz çalışma zamanında beklenmedik şekilde davranır; function logs bölümünü kontrol edin.
  • Yerel örnek durumu — yukarıdakilerin hiçbiri geçerli değil ve çalışma alanı hâlâ hatalı görünüyorsa; kurtarma merdiveninde aşağı doğru ilerleyin.