Эта документация была автоматически переведена ИИ.
Независимо от того, клонируете ли вы исходный код из Git или инициализируете проект с помощью create-nocobase-app, сгенерированный проект NocoBase по сути является монорепозиторием, основанным на Yarn Workspace.
В следующем примере my-nocobase-app/ используется как корневой каталог проекта. В разных средах могут быть небольшие отличия:
Каталог packages/ содержит основные модули NocoBase и расширяемые пакеты. Его содержимое зависит от источника проекта:
create-nocobase-app: По умолчанию содержат только packages/plugins/, где хранится исходный код пользовательских плагинов. Каждый подкаталог является независимым npm-пакетом.core/, plugins/, pro-plugins/, presets/ и т.д., которые соответствуют ядру фреймворка, встроенным плагинам и официальным предустановленным решениям.В любом случае, packages/plugins является основным местом для разработки и отладки пользовательских плагинов.
В storage/ хранятся данные, генерируемые во время выполнения, и результаты сборки. Ниже приведено описание распространенных подкаталогов:
apps/: Конфигурация и кэш для сценариев с несколькими приложениями.logs/: Журналы выполнения и вывод отладки.uploads/: Загруженные пользователями файлы и медиаресурсы.plugins/: Упакованные плагины, загруженные через интерфейс или импортированные через CLI.tar/: Сжатые пакеты плагинов, сгенерированные после выполнения yarn build <plugin> --tar.Обычно рекомендуется добавлять каталог
storageв.gitignoreи обрабатывать его отдельно при развертывании или резервном копировании.
.env, .env.test, .env.e2e: Используются для локального запуска, модульного/интеграционного тестирования и сквозного (E2E) тестирования соответственно.scripts/: Содержит часто используемые скрипты для операций (например, инициализация базы данных, вспомогательные инструменты для выпуска и т.д.).Плагины могут находиться в нескольких местах. При запуске NocoBase загружает их в следующем порядке приоритета:
packages/plugins (для локальной разработки и отладки).storage/plugins (загруженная через интерфейс или импортированная через CLI).node_modules (установленные через npm/yarn или встроенные во фреймворк).Если плагин с одним и тем же именем существует как в каталоге исходного кода, так и в каталоге с упакованными версиями, система будет отдавать приоритет загрузке версии из исходного кода, что упрощает локальное переопределение и отладку.
Создание плагина с помощью CLI:
Сгенерированная структура каталогов выглядит следующим образом:
После завершения сборки каталог
dist/и файлыclient.js,server.jsбудут загружены при включении плагина.
На этапе разработки вам нужно изменять только каталогsrc/. Перед публикацией выполнитеyarn build <plugin>илиyarn build <plugin> --tar.