如果使用 starter CLI 创建 Strapi 项目,其结构包括 frontend
和 backend
文件夹,其中 backend
文件夹具有默认结构。
使用 starter CLI 创建的项目的结构
sh
my-project
├─── frontend # 启动文件夹
├─── backend # 模板文件夹,具有项目的默认结构
└─── node_modules
在没有启动 CLI 的情况下创建的 Strapi 项目的默认结构取决于该项目是使用原始 JavaScript 还是使用 TypeScript 创建的,如下所示:
bash
基于JS
bash
. # 应用程序的根目录
├──── .strapi # 自动生成的文件夹 - 无需手动更新
│ └──── client # 打包器用于呈现应用程序的文件
│ ├ index.html
│ └ app.js
├──── .tmp
├──── build # 管理面板的构建
├──── config # API 配置
│ ├ api.js
│ ├ admin.js
│ ├ cron-tasks.js
│ ├ 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
│ ├──── 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
└ package.json