Обзор разработки плагинов

NocoBase использует микроядерную архитектуру, в которой ядро отвечает только за оркестрацию жизненного цикла плагинов, управление зависимостями и инкапсуляцию базовых возможностей. Все бизнес-функции предоставляются в виде плагинов. Поэтому понимание структуры плагина, его жизненного цикла и подхода к управлению — это первый шаг к кастомизации NocoBase.

Ключевые концепции

  • Подключай и работай: плагины можно устанавливать, включать и отключать по мере необходимости, гибко комбинируя бизнес-функции без изменения кода.
  • Полноплатформенная интеграция: плагины обычно включают как серверную, так и клиентскую реализацию, обеспечивая согласованность между логикой данных и взаимодействиями пользовательского интерфейса.

Базовая структура плагина

Каждый плагин — это независимый npm-пакет, обычно содержащий следующую структуру каталогов:

plugin-hello/
├─ package.json          # Имя плагина, зависимости и метаданные плагина NocoBase
├─ client.js             # Артефакт сборки клиентской части для загрузки во время выполнения
├─ server.js             # Артефакт сборки серверной части для загрузки во время выполнения
├─ src/
  ├─ client/            # Исходный код клиентской части: регистрация блоков, действий, полей и т. д.
  └─ server/            # Исходный код серверной части: регистрация ресурсов, событий, команд и т. д.

Соглашения по каталогам и порядок загрузки

По умолчанию NocoBase сканирует для загрузки плагинов следующие каталоги:

my-nocobase-app/
├── packages/
   └── plugins/          # Плагины в разработке (наивысший приоритет)
└── storage/
    └── plugins/          # Скомпилированные плагины, например загруженные или опубликованные
  • packages/plugins: используется для локальной разработки плагинов, поддерживает компиляцию в реальном времени и отладку.
  • storage/plugins: хранит скомпилированные плагины, например коммерческие редакции или сторонние плагины.

Жизненный цикл и состояния плагина

Обычно плагин проходит следующие стадии:

  1. Create: создать шаблон плагина через CLI.
  2. Pull: скачать пакет плагина локально, но он еще не записан в базу данных.
  3. Enable: при первом включении выполняется "регистрация + инициализация"; при последующих включениях загружается только логика.
  4. Disable: остановить выполнение плагина.
  5. Remove: полностью удалить плагин из системы.
Tip
  • pull только скачивает пакет плагина; фактическая установка запускается при первом enable.
  • Если плагин только pull-нут, но не включен, он не будет загружен.

Примеры команд интерфейса командной строки

# 1. Создать каркас плагина
yarn pm create @my-project/plugin-hello

# 2. Получить пакет плагина (скачать или связать)
yarn pm pull @my-project/plugin-hello

# 3. Включить плагин (при первом включении устанавливается автоматически)
yarn pm enable @my-project/plugin-hello

# 4. Отключить плагин
yarn pm disable @my-project/plugin-hello

# 5. Удалить плагин
yarn pm remove @my-project/plugin-hello

Интерфейс управления плагинами

Откройте менеджер плагинов в браузере, чтобы наглядно просматривать и управлять плагинами:

URL по умолчанию: http://localhost:13000/admin/settings/plugin-manager

Менеджер плагинов