项目结构
新创建的插件项目典型的目录结构如下所示:
.
├── LICENSE
├── README.md
├── gradle
│ └── .
├── lib
│ └── halo-2.0.0-SNAPSHOT-plain.jar
├── src
│ ├── main
│ │ ├── java
│ │ │ └── run
│ │ │ └── halo
│ │ │ └── starter
│ │ │ └── StarterPlugin.java
│ │ └── resources
│ │ ├── console
│ │ │ ├── main.js
│ │ │ └── style.css
│ │ └── plugin.yaml
├── gradlew
├── gradlew.bat
├── gradle.properties
├── settings.gradle
├── build.gradle
├── console
│ ├── package.json
│ ├── pnpm-lock.yaml
│ ├── src
│ │ ├── assets
│ │ │ └── logo.svg
│ │ ├── components
│ │ │ └── HelloWorld.vue
│ │ ├── index.ts
│ │ ├── styles
│ │ │ └── index.css
│ │ └── views
│ │ └── DefaultView.vue
│ ├── tsconfig.app.json
│ ├── tsconfig.config.json
│ ├── tsconfig.json
│ ├── tsconfig.vitest.json
│ └── vite.config.ts
该目录包含了前端和后端两个部分,让我们依次看一下它们中的每一个。
后端部分
所有的后端代码都放在 src
目录下,它是一个常规的 Java
项目目录结构。
StarterPlugin.java
为插件的后端入口文件。resources
下的plugin.yaml
为插件的资源描述文件,它是必须的。resources/console
下的两个文件main.js
和style.css
是前端插件部分打包时输出的产物。一个插件可以没有前端部分,因此resources/console
同样可以不存在。
lib/halo-2.0.0-SNAPSHOT-plain.jar
它是 Halo 的类型依赖,目前使用 JAR
文件的方式引入依赖只是暂时的,后续将会改进它,它只作为编译时依赖使用。
前端部分
console
目录下为插件的前端部分的工程目录,包括了源码、配置文件和静态资源文件。
同样的,将所有前端项目源码放到 src
中。我们建议使用 TypeScript
作为编程语言,它可以帮助你在编译时而非运行时捕获错误。
src/index.ts
作为前端部分的插件的入口文件。views
中存放视图文件。styles
中存放样式。components
中放一些公共组件。assets
用于放静态资源文件。