Monorepo
主要 Directus 存储库位于 directus/directus
并包含管理应用程序(Vue.js 3 w/ Composition API)、API (Node.js)、 API 规范 (OpenAPI) 和内部使用的其他较小的包。 Directus 遵循类似于 React 或 Babel 的 monorepo 设计——本页将概述我们的 monorepo 的设计和结构。
/api
包含用 Node.js 编写的 Directus API (REST+GraphQL)。
/api/src/cli
directus
软件包附带的 CLI 命令和匹配函数。
/api/src/controllers
API 中端点的路由处理程序控制器。
/api/src/database
数据库操作抽象、系统迁移和系统数据。 您还可以在其中找到主要查询运行程序。
/api/src/exceptions
API 预期抛出的不同错误的类。 用于设置 HTTP 状态和错误代码。
/api/src/middleware
各种(快速)路由中间件。 包括缓存检查器、身份验证器等。
/api/src/services
内部服务。 与数据库中的数据交互的主要抽象。 GraphQL 和 REST 请求都被“翻译”为使用这些服务作为平台中的主要逻辑。
/api/src/types
在 API 的不同部分之间共享的 TypeScript 类型。
/api/src/utils
各种实用功能。
/app
包含 Directus 管理应用程序,使用 Vue.js 3 和 Composition API 编写。
/docs/directus/app/public
包含在应用程序中但未捆绑的资产。
/docs/directus/app/src/assets
应用程序中包含的文件。在构建步骤中捆绑/优化。
/docs/directus/app/src/components
跨平台使用的(基础)组件。包含“基本构建块”,如按钮、输入等。
/docs/directus/app/src/composables
可在 Vue 组件之间使用的反应式逻辑的可重用部分。包括从现在起反应性地计算时间、获取单个项目等的事情。
/docs/directus/app/src/directives
自定义 Vue 指令(例如 v-tooltip
)。
/docs/directus/app/src/displays
Components to display of data within the app.
/docs/directus/app/src/interfaces
包含核心的接口。
/docs/directus/app/src/lang
翻译抽象和语言文件。语言 yaml 文件通过 Crowdin 维护。
/docs/directus/app/src/layouts
包含核心的布局。
/docs/directus/app/src/modules
包含核心的模块。
/docs/directus/app/src/routes
应用程序中的路线。模块定义了自己的路由,所以这只包括不属于模块的“系统”东西,比如登录。
/docs/directus/app/src/stores
基于 Pinia 的商店用于全球状态跟踪。
/docs/directus/app/src/styles
应用程序中的全局样式。每个组件都有自己的组件样式,这些只是全局样式。
/docs/directus/app/src/types
在 API 的不同部分之间共享的 TypeScript 类型。
/docs/directus/app/src/utils
应用程序各个部分中使用的实用功能。
/docs/directus/app/src/views
应用程序中使用的(两个)主要视图:公共/私有。还包含这两个视图的“内部”耦合组件。
/packages
平台的各种子包。 包括文件存储适配器、模式、规范等。
/tests
测试是在每个包的基础上维护的。 此文件夹包含平台范围(端到端)的测试。