Ця документація була автоматично перекладена штучним інтелектом.
У NocoBase команди використовуються для виконання операцій, пов'язаних із застосунками або плагінами, безпосередньо в командному рядку. Наприклад, це може бути запуск системних завдань, виконання міграцій або операцій синхронізації, ініціалізація конфігурації, або взаємодія з запущеними екземплярами застосунків. Розробники можуть визначати власні команди для плагінів та реєструвати їх через об'єкт app, виконуючи їх у CLI у форматі nocobase <command>.
У NocoBase реєстрація команд поділяється на два типи:
| Тип | Метод реєстрації | Чи потрібно вмикати плагін | Типові сценарії |
|---|---|---|---|
| Динамічна команда | app.command() | ✅ Так | Команди, пов'язані з бізнес-логікою плагіна |
| Статична команда | Application.registerStaticCommand() | ❌ Ні | Команди для встановлення, ініціалізації, обслуговування |
Використовуйте app.command() для визначення команд плагінів. Ці команди можна виконувати лише після ввімкнення плагіна. Файли команд слід розміщувати в каталозі плагіна за шляхом src/server/commands/*.ts.
Приклад
Опис
app.command('echo'): Визначає команду з назвою echo..option('-v, --version'): Додає опцію до команди..action(): Визначає логіку виконання команди.app.version.get(): Отримує поточну версію застосунку.Виконання команди
Використовуйте Application.registerStaticCommand() для реєстрації. Статичні команди можуть виконуватися без ввімкнення плагінів, що робить їх ідеальними для завдань встановлення, ініціалізації, міграції або налагодження. Реєструйте їх у методі staticImport() класу плагіна.
Приклад
Виконання команди
Опис
Application.registerStaticCommand(): Реєструє команди до того, як застосунок буде інстанційовано.Об'єкти команд надають три додаткові допоміжні методи для керування контекстом виконання команди:
| Метод | Призначення | Приклад |
|---|---|---|
ipc() | Взаємодія з запущеними екземплярами застосунку (через IPC) | app.command('reload').ipc().action() |
auth() | Перевірка коректності конфігурації бази даних | app.command('seed').auth().action() |
preload() | Попереднє завантаження конфігурації застосунку (виконання app.load()) | app.command('sync').preload().action() |
Опис конфігурації
ipc()
За замовчуванням команди виконуються в новому екземплярі застосунку. Після ввімкнення ipc() команди взаємодіють із поточним запущеним екземпляром застосунку через міжпроцесну комунікацію (IPC), що підходить для команд реального часу (наприклад, оновлення кешу, надсилання сповіщень).
auth()
Перевіряє доступність конфігурації бази даних перед виконанням команди. Якщо конфігурація бази даних некоректна або з'єднання не вдалося, команда не буде продовжена. Часто використовується для завдань, що передбачають запис або читання з бази даних.
preload()
Попередньо завантажує конфігурацію застосунку перед виконанням команди, що еквівалентно виконанню app.load(). Підходить для команд, які залежать від конфігурації або контексту плагіна.
Більше методів API дивіться в AppCommand.
Ініціалізація даних за замовчуванням
Перезавантаження кешу для запущеного екземпляра (режим IPC)
Статична реєстрація команди встановлення