Command Command Line
Di NocoBase, Command (Perintah) digunakan untuk mengeksekusi operasi terkait aplikasi atau plugin pada command line — seperti menjalankan task sistem, mengeksekusi migration, menginisialisasi konfigurasi, atau berinteraksi dengan instance aplikasi yang sedang berjalan. Anda dapat mendefinisikan command kustom untuk plugin, setelah didaftarkan melalui objek app, dapat dieksekusi di CLI dalam bentuk nocobase <command>.
Tipe Command
Di NocoBase, cara registrasi command dibagi menjadi dua jenis:
Command Dinamis
Menggunakan app.command() untuk mendefinisikan command plugin, baru dapat dieksekusi setelah plugin diaktifkan. File command biasanya ditempatkan di src/server/commands/*.ts di direktori plugin.
Contoh
Di mana:
app.command('echo')— Mendefinisikan command bernamaecho.option('-v, --version')— Menambahkan opsi untuk command.action()— Mendefinisikan logika eksekusi commandapp.version.get()— Mendapatkan versi aplikasi saat ini
Mengeksekusi Command
Command Statis
Didaftarkan menggunakan Application.registerStaticCommand(), command statis dapat dieksekusi tanpa perlu mengaktifkan plugin, cocok untuk task instalasi, inisialisasi, migrasi, atau debug. Biasanya didaftarkan di method staticImport() class plugin.
Contoh
Mengeksekusi Command
Di mana:
Application.registerStaticCommand()akan mendaftarkan command sebelum aplikasi diinstansiasi- Command statis biasanya digunakan untuk mengeksekusi task global yang tidak terkait dengan status aplikasi atau plugin
Command API
Objek command menyediakan tiga method bantuan opsional, untuk mengontrol konteks eksekusi command:
Penjelasan Konfigurasi
-
ipc()Biasanya, command akan dieksekusi dalam instance aplikasi baru. Setelah mengaktifkanipc(), command akan berinteraksi dengan instance aplikasi yang sedang berjalan melalui inter-process communication (IPC), cocok untuk command operasi real-time (seperti refresh cache, kirim notifikasi). -
auth()Memeriksa apakah konfigurasi database tersedia sebelum command dieksekusi. Jika konfigurasi database salah atau koneksi gagal, command tidak akan dilanjutkan. Sering digunakan untuk task yang melibatkan tulis atau baca database. -
preload()Pre-load konfigurasi aplikasi sebelum mengeksekusi command, setara dengan mengeksekusiapp.load(). Cocok untuk command yang bergantung pada konfigurasi atau konteks plugin.
Untuk method API lainnya dapat merujuk ke AppCommand API.
Contoh Umum
Menginisialisasi Data Default
Membuat Instance yang Berjalan Memuat Ulang Cache (Mode IPC)
Registrasi Statis Command Instalasi
Tautan Terkait
- Plugin — Siklus hidup plugin dan API inti
- Ikhtisar Pengembangan Server — Ringkasan setiap modul server
- Test Pengujian — Cara menulis test plugin server
- Migration Migrasi — Migrasi data dan skrip upgrade
- Ikhtisar Plugin Development — Pengantar menyeluruh tentang plugin development
- AppCommand API — Referensi API lengkap AppCommand

