Files
docs/versioned_docs/version-2.21/developer-guide/plugin/basics/structure.md
Ryan Wang 9df9374ce3 docs: update documentations for 2.21 (#502)
Signed-off-by: Ryan Wang <i@ryanc.cc>
2025-06-15 14:49:12 +08:00

71 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 插件项目结构
description: 了解插件项目的文件结构
---
当你创建一个新的插件项目时,典型的目录结构如下所示:
```text
├── ui
│ ├── src
│ │ ├── assets
│ │ │ └── logo.svg
│ │ ├── views
│ │ │ └── HomeView.vue
│ │ └── index.ts
│ ├── env.d.ts
│ ├── package.json
│ ├── pnpm-lock.yaml
│ ├── tsconfig.app.json
│ ├── tsconfig.config.json
│ ├── tsconfig.json
│ ├── tsconfig.vitest.json
│ └── vite.config.ts
├── gradle
├── src
│ └── main
│ ├── java
│ │ └── run
│ │ └── halo
│ │ └── starter
│ │ └── StarterPlugin.java
│ └── resources
│ ├── console
│ │ ├── main.js
│ │ └── style.css
│ └── plugin.yaml
├── LICENSE
├── README.md
├── build.gradle
├── gradle.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
```
此目录结构划分为前端和后端两部分,下面我们将分别进行详细说明。
### 后端部分
`src` 目录中存放的是后端代码,这部分遵循标准的 Java 项目结构。以下是各个文件和文件夹的说明:
- `StarterPlugin.java`:插件后端的入口文件,位于 `src/main/java/run/halo/starter` 路径下。你可以根据需要修改包名和类名,但需要确保该类继承 `run.halo.app.plugin.BasePlugin`,以指定其为插件的入口。
- `plugin.yaml`:这是插件的描述文件,位于 `src/main/resources` 目录下。该文件是必须的,包含插件的基本信息,如插件名称、版本、作者、描述以及依赖等内容。
- `resources/console`:该文件夹通常包含前端部分打包后生成的文件,包括 main.jsJavaScript 文件)和 style.css样式表。如果插件不包含前端部分此目录可以忽略。
:::warning 注意
从 2.11 开始Halo 支持了 UC 个人中心,且个人中心和 Console 的插件机制共享,所以为了避免歧义,`resources/console` 在后续版本会被重命名为 `resources/ui`,但同时也会兼容 `resources/console`
:::
### 前端部分
`ui` 目录下存放插件的前端代码和相关资源,前端部分通常采用 Vue 作为开发框架,并推荐使用 TypeScript 作为主要语言,这有助于在编译阶段捕获潜在错误。
以下是前端部分各文件夹和文件的说明:
- `src/index.ts`:作为前端部分的插件的入口文件。
- `views`:用于存放 Vue 组件的页面视图文件。
- `styles`:用于存放全局样式和自定义 CSS 文件。
- `components`:推荐创建该目录以放置可复用的公共组件,便于插件项目的模块化和维护。
- `assets`:存放静态资源文件,如图片、图标等。