Управление зависимостями
В разработке плагинов NocoBase зависимости делятся на две категории: зависимости плагина и глобальные зависимости.
- Глобальные за висимости: предоставляются
@nocobase/serverи@nocobase/client, поэтому плагину не нужно бандлить их отдельно. - Зависимости плагина: уникальные зависимости плагина (включая серверные зависимости) будут включены в артефакты плагина.
Принципы разработки
Так как зависимости плагина будут включены в артефакты (включая серверные зависимости в dist/node_modules), во время разработки можно объявлять все зависимости в devDependencies, а не в dependencies. Это позволяет избежать расхождений между средами разработки и продакшена.
Когда плагину требуется установить перечисленные ниже зависимости, убедитесь, что номер версии совпадает с глобальными зависимостями в @nocobase/server и @nocobase/client, иначе возможны конфликты во время выполнения.
Глобальные зависимости
Следующие зависимости предоставляются NocoBase и не должны бандлиться внутри плагинов. При необходимос ти их версии должны соответствовать версии фреймворка.
Рекомендации по разработке
-
Поддерживайте согласованность зависимостей
Если нужно использовать пакеты, которые уже есть среди глобальных зависимостей, избегайте установки других версий и используйте глобальные зависимости напрямую. -
Минимизируйте размер бандла
Для распространенных UI-библиотек (например,antd), утилит (например,lodash) и драйверов БД (например,pg,mysql2) лучше опираться на глобально предоставляемые версии, чтобы избежать дублирующего бандлинга. -
Согласованность между отладкой и продакшеном
Исп ользованиеdevDependenciesобеспечивает согласованность между разработкой и итоговыми артефактами, предотвращая различия окружений из-за некорректной конфигурацииdependenciesиpeerDependencies.

