Частые проблемы и руководство по устранению неполадок
Здесь собраны ловушки, в которые легко попасть при разработке клиентских плагинов. Если у Вас ситуация «вроде бы написано правильно, а не работает» — приходите сюда первым делом.
Плагин
После создания плагин не виден в менеджере
Убедитесь, что Вы выполняли yarn pm create, а не создавали каталог вручную. yarn pm create, помимо генерации файлов, регистрирует плагин в таблице applicationPlugins базы данных. Если каталог был создан вручную, можно выполнить yarn nocobase upgrade для повторного сканирования.
После включения плагина страница не изменилась
Проверьте по порядку:
- Убедитесь, что Вы выполнили
yarn pm enable <pluginName> - Обновите браузер (иногда нужна принудительная перезагрузка
Ctrl+Shift+R) - Проверьте консоль браузера на наличие ошибок
После изменения кода страница не обновляется
Поведение горячей перезагрузки разное для разных типов файлов:
Если код клиента изменён, но горячая перезагрузка не сработала, сначала попробуйте обновить браузер.
Маршрутизация
Зарегистрированный маршрут страницы недоступен
В NocoBase v2 маршруты по умолчанию имеют префикс /v. Например, если Вы зарегистрировали path: '/hello', фактический адрес — /v/hello:
Подробнее см. в Router (Маршрутизация).
Страница настроек плагина пустая
Если меню страницы настроек появилось, но содержимое пустое, обычно одна из двух причин:
Причина первая: в v1 client использован componentLoader
componentLoader — это синтаксис client-v2, в v1 client нужно использовать Component с прямой передачей компонента:
Причина вторая: компонент страницы не экспортирован через export default
componentLoader требует, чтобы у модуля был экспорт по умолчанию — без default загрузить не получится.
Блоки
Пользовательский блок не виден в меню «Добавить блок»
Убедитесь, что в load() зарегистрирована модель:
Если используется registerModels (без ленивой загрузки), убедитесь, что в models/index.ts модель корректно экспортирована.
При добавлении блока в списке выбора таблицы данных нет моей таблицы
Таблица, определённая через defineCollection, является внутренней серверной таблицей и по умолчанию не появляется в списке таблиц данных в UI.
Рекомендуемый подход: добавьте соответствующую таблицу данных в Управлении источниками данных интерфейса NocoBase, после настройки полей и типа интерфейса таблица автоматически появится в списке выбора таблиц данных в блоке.
Если действительно нужно регистрировать в коде плагина (например, в демонстрационном сценарии плагина-примера), можно вручную зарегистрировать через addCollection. Подробнее см. в Создание плагина управления данными с интеграцией фронтенда и бэкенда. Внимание: регистрировать нужно через шаблон eventBus, нельзя напрямую вызывать в load() — ensureLoaded() будет выполнено после load() и очистит и заново установит все collection.

