项目结构

页面摘要: Strapi 项目的结构取决于它是使用 TypeScript(使用 --quickstart 时的默认选项)还是普通 JavaScript 创建的,并通过一个交互式项目结构组件展示。

Strapi 项目的结构取决于它是使用 TypeScript(如果在创建项目时使用了 --quickstart 选项则为默认)还是普通 JavaScript 创建的,如下所示:

基于 TypeScript 的项目

. # 应用程序根目录
├──── .strapi # 自动生成的文件夹 — 请勿手动更新
│ └──── client # 打包器用于渲染应用程序的文件
│   ├ index.html
│   └ app.js
├──── .tmp
├──── config # API 配置
│ ├ admin.ts
│ ├ api.ts
│ ├ cron-tasks.ts # 可选,仅在你创建了 CRON 任务时存在
│ ├ database.ts
│ ├ middlewares.ts
│ ├ plugins.ts
│ └ server.ts
├──── database
│ └──── migrations
├──── dist # 后端构建输出
│ └──── build # 管理面板构建输出
├──── node_modules # 项目使用的 npm 包
├──── public # 外部可访问的文件
│ ├──── uploads
│ └ robots.txt
├──── src
│ ├──── admin # 管理面板自定义文件
│ │ ├──── extensions # 可选,用于扩展管理面板的文件
│ │ │ ├──── app.example.tsx
│ │ │ ├──── webpack.config.example.js
│ │ │ └──── tsconfig.json
│ ├──── api # 项目的业务逻辑,按 API 拆分为子文件夹
│ │ └──── (api-name)
│ │   ├──── content-types
│ │   │ └──── (content-type-name)
│ │   │   ├ lifecycles.ts
│ │   │   └ schema.json
│ │   ├──── controllers
│ │   ├──── middlewares
│ │   ├──── policies
│ │   ├──── routes
│ │   ├──── services
│ │   └ index.ts
│ ├──── components
│ │ └──── (category-name)
│ │   ├ (componentA).json
│ │   └ (componentB).json
│ ├──── content-structure # 用于组织内容类型的文件夹
│ │ └ groups.json
│ ├──── extensions # 用于扩展已安装插件的文件
│ │ └──── (plugin-to-be-extended)
│ │   ├──── content-types
│ │   │ └──── (content-type-name)
│ │   │   └ schema.json
│ │   └ strapi-server.js
│ ├──── middlewares
│ │ └──── (middleware-name)
│ │   ├ defaults.json
│ │   └ index.ts
│ ├──── plugins # 本地插件文件
│ │ └──── (plugin-name)
│ │   ├──── admin
│ │   │ └──── src
│ │   │   └ index.tsx
│ │   │     └ pluginId.ts
│ │   ├──── server
│ │   │ ├──── content-types
│ │   │ ├──── controllers
│ │   │ └──── policies
│ │   ├ package.json
│ │   ├ strapi-admin.js
│ │   └ strapi-server.js
│ ├──── policies
│ └ index.ts # 包含 register()、bootstrap() 和 destroy() 函数
├──── types
│ └──── generated
│   ├ components.d.ts # 为你的组件生成的类型
│   └ contentTypes.d.ts # 为内容类型生成的类型
├ .env
├ .strapi-updater.json # 用于跟踪用户是否需要更新其应用程序
├ favicon.png
├ package.json
└ tsconfig.json

基于 JavaScript 的项目

以下图表是交互式的:你可以点击任何以紫色高亮显示的文件或文件夹名称,跳转到相应的文档页面。

. # 应用程序根目录
├──── .strapi # 自动生成的文件夹 — 请勿手动更新
│ └──── client # 打包器用于渲染应用程序的文件
│   ├ index.html
│   └ app.js
├──── .tmp
├──── build # 管理面板构建输出
├──── config # API 配置
│ ├ admin.js
│ ├ api.js
│ ├ cron-tasks.ts # 可选,仅在你创建了 CRON 任务时存在
│ ├ database.js
│ ├ middlewares.js
│ ├ plugins.js
│ └ server.js
├──── database
│ └──── migrations
├──── node_modules # 项目使用的 npm 包
├──── public # 外部可访问的文件
│ └──── uploads
├──── src
│ ├──── admin # 管理面板自定义文件
│ │ ├──── extensions # 可选,用于扩展管理面板的文件
│ │ │ ├──── app.js
│ │ │ └──── webpack.config.js
│ ├──── api # 项目的业务逻辑,按 API 拆分为子文件夹
│ │ └──── (api-name)
│ │   ├──── content-types
│ │   │ └──── (content-type-name)
│ │   │   ├ lifecycles.js
│ │   │   └ schema.json
│ │   ├──── controllers
│ │   ├──── middlewares
│ │   ├──── policies
│ │   ├──── routes
│ │   ├──── services
│ │   └ index.js
│ ├──── components
│ │ └──── (category-name)
│ │   ├ (componentA).json
│ │   └ (componentB).json
│ ├──── content-structure # 用于组织内容类型的文件夹
│ │ └ groups.json
│ ├──── extensions # 用于扩展已安装插件的文件
│ │ └──── (plugin-to-be-extended)
│ │   ├──── content-types
│ │   │ └──── (content-type-name)
│ │   │   └ schema.json
│ │   └ strapi-server.js
│ ├──── middlewares
│ │ └──── (middleware-name).js
│ ├──── plugins # 本地插件文件
│ │ └──── (plugin-name)
│ │   ├──── admin
│ │   │ └──── src
│ │   │   └ index.js
│ │   ├──── server
│ │   │ ├──── content-types
│ │   │ ├──── controllers
│ │   │ └──── policies
│ │   ├ package.json
│ │   ├ strapi-admin.js
│ │   └ strapi-server.js
│ ├──── policies
│ └ index.js # 包含 register()、bootstrap() 和 destroy() 函数
├ .env
├ favicon.png
└ package.json