Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

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

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

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

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

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

Каждый плагин представляет собой независимый 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), но не включен, он не будет загружен.

Примеры команд CLI

# 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

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

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

Адрес по умолчанию: http://localhost:13000/admin/settings/plugin-manager

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