Bu belge AI tarafından çevrilmiştir. Herhangi bir yanlışlık için lütfen İngilizce sürümüne bakın
NocoBase'de komutlar, komut satırında uygulama veya eklentilerle ilgili işlemleri yürütmek için kullanılır. Örneğin, sistem görevlerini çalıştırmak, geçiş (migration) veya senkronizasyon işlemleri gerçekleştirmek, yapılandırmayı başlatmak ya da çalışan uygulama örnekleriyle etkileşimde bulunmak gibi. Geliştiriciler, eklentiler için özel komutlar tanımlayabilir ve bunları app nesnesi aracılığıyla kaydederek CLI'da nocobase <komut> şeklinde çalıştırabilirler.
NocoBase'de komut kaydı iki türe ayrılır:
| Tür | Kayıt Yöntemi | Eklenti Etkin Olmalı mı? | Tipik Senaryolar |
|---|---|---|---|
| Dinamik Komut | app.command() | ✅ Evet | Eklenti işlevleriyle ilgili komutlar |
| Statik Komut | Application.registerStaticCommand() | ❌ Hayır | Kurulum, başlatma, bakım komutları |
eklenti komutlarını tanımlamak için app.command() kullanın. Komutlar yalnızca eklenti etkinleştirildikten sonra çalıştırılabilir. Komut dosyaları, eklenti dizininin altındaki src/server/commands/*.ts konumuna yerleştirilmelidir.
Örnek
Açıklama
app.command('echo'): echo adlı bir komut tanımlar..option('-v, --version'): Komuta bir seçenek ekler..action(): Komutun yürütme mantığını tanımlar.app.version.get(): Mevcut uygulama sürümünü alır.Komutu Çalıştırma
Application.registerStaticCommand() kullanarak kaydedilen statik komutlar, eklenti etkinleştirilmeden çalıştırılabilir. Kurulum, başlatma, geçiş (migration) veya hata ayıklama gibi görevler için uygundur. eklenti sınıfının staticImport() metodunda kaydedilirler.
Örnek
Komutu Çalıştırma
Açıklama
Application.registerStaticCommand(), uygulama örneği oluşturulmadan önce komutları kaydeder.eklenti durumundan bağımsız genel görevleri yürütmek için kullanılır.Komut nesneleri, komut yürütme bağlamını kontrol etmek için üç isteğe bağlı yardımcı yöntem sunar:
| Yöntem | Amaç | Örnek |
|---|---|---|
ipc() | Çalışan uygulama örnekleriyle iletişim kurar (IPC aracılığıyla) | app.command('reload').ipc().action() |
auth() | Veritabanı yapılandırmasının doğru olduğunu doğrular | app.command('seed').auth().action() |
preload() | Uygulama yapılandırmasını önceden yükler (app.load() çalıştırır) | app.command('sync').preload().action() |
Yapılandırma Açıklaması
ipc()
Varsayılan olarak, komutlar yeni bir uygulama örneğinde yürütülür.
ipc() etkinleştirildikten sonra, komutlar süreçler arası iletişim (IPC) aracılığıyla o anda çalışan uygulama örneğiyle etkileşime girer. Bu, önbelleği yenileme, bildirim gönderme gibi gerçek zamanlı işlem komutları için uygundur.
auth()
Komut yürütülmeden önce veritabanı yapılandırmasının kullanılabilir olup olmadığını kontrol eder.
Eğer veritabanı yapılandırması yanlışsa veya bağlantı başarısız olursa, komut yürütülmeye devam etmez. Genellikle veritabanı yazma veya okuma işlemleri içeren görevler için kullanılır.
preload()
Komut yürütülmeden önce uygulama yapılandırmasını önceden yükler; bu, app.load() çalıştırmaya eşdeğerdir.
Yapılandırmaya veya eklenti bağlamına bağlı olan komutlar için uygundur.
Daha fazla API yöntemi için AppCommand bölümüne bakınız.
Varsayılan Verileri Başlatma
Çalışan Örnek İçin Önbelleği Yeniden Yükleme (IPC Modu)
Kurulum Komutunun Statik Kaydı