Эта документация была автоматически переведена ИИ.
Команды
В NocoBase команды используются для выполнения операций, связанных с приложениями или плагинами, прямо из командной строки. С их помощью можно запускать системные задачи, выполнять миграции или синхронизации, инициализировать конфигурации или взаимодействовать с запущенными экземплярами приложений. Разработчики могут определять собственные команды для плагинов, регистрировать их через объект app и затем выполнять в CLI в формате nocobase <command>.
Типы команд
В NocoBase регистрация команд делится на два типа:
Динамические команды
Используйте app.command() для определения команд плагина. Эти команды могут быть выполнены только после включения соответствующего плагина. Файлы команд следует размещать в каталоге плагина по пути src/server/commands/*.ts.
Пример
Описание
app.command('echo'): Определяет команду с именемecho..option('-v, --version'): Добавляет опцию к команде..action(): Определяет логику выполнения команды.app.version.get(): Получает текущую версию приложения.
Выполнение команды
Статические команды
Используйте Application.registerStaticCommand() для регистрации статических команд. Они могут быть выполнены без включения плагинов и подходят для задач установки, инициализации, миграции или отладки. Регистрация происходит в методе staticImport() класса плагина.
Пример
Выполнение команды
Описание
Application.registerStaticCommand()регистрирует команды до того, как приложение будет инстанцировано.- Статические команды обычно используются для выполнения глобальных задач, не зависящих от состояния приложения или плагина.
Command API
Объекты команд предоставляют три необязательных вспомогательных метода для управления контекстом выполнения команды:
Описание конфигурации
-
ipc()По умолчанию команды выполняются в новом экземпляре приложения. При включенииipc()команды взаимодействуют с текущим запущенным экземпляром приложения через межпроцессное взаимодействие (IPC). Это подходит для команд, требующих работы в реальном времени (например, для обновления кеша или отправки уведомлений). -
auth()Проверяет доступность конфигурации базы данных перед выполнением команды. Если конфигурация базы данных неверна или соединение не удалось, команда не будет продолжена. Часто используется для задач, связанных с записью или чтением из базы данных. -
preload()Предварительно загружает конфигурацию приложения перед выполнением команды, что эквивалентно вызовуapp.load(). Подходит для команд, которые зависят от конфигурации или контекста плагина.
Дополнительные методы API см. в разделе AppCommand.
Распространенные примеры
Инициализация данных по умолчанию
Перезагрузка кеша для запущенного экземпляра (режим IPC)
Статическая регистрация команды установки

