strapi 项目结构介绍

1. 项目结构

如果 Strapi 项目是使用starter CLI创建的,则其结构包括frontend和backend文件夹,其中backend文件夹具有默认结构。

1
2
3
4
5
6

my-project
├─── frontend # 前端代码文件夹
├─── backend # 后端端代码文件夹, 拥有nodejs后端应用默认的目录结构
└─── node_modules # 依赖包

不使用CLI自定义创建的 Strapi 项目的默认结构取决于该项目是使用普通 JavaScript 还是使用TypeScript创建的,使用TypeScript创建的项目如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70

. # 应用的根目录
├──── .cache # 用于构建管理面板的文件
├──── .tmp
├──── config # API 配置文件
│ ├ api.ts
│ ├ admin.ts
│ ├ cron-tasks.ts
│ ├ database.ts
│ ├ middlewares.ts
│ ├ plugins.ts
│ └ server.ts
├──── database
│ └──── migrations
├──── dist # 后端的构建
│ └──── build # 管理面板的构建
├──── node_modules # 项目用到的npm包
├──── public # 外部可访问的文件
│ └──── uploads
├──── src
│ ├──── admin # 管理员自定义文件
│ │ ├──── extensions # 扩展管理面板的文件
│ │ ├ app.example.tsx
│ │ ├ webpack.config.ts
| | └ 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
│ ├──── 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() and destroy() functions
├ .env
├ tsconfig.json
└ package.json

2. 参考文档

Strapi Project structure