Эта документация была автоматически переведена ИИ.
В 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)
Статическая регистрация команды установки