开发环境与自动构建

适用范围:当前适配 Halo 2.26.0 及以上版本的言答Issue。旧版插件的界面与构建方式可能不同。

Java 使用 21;Gradle 自动下载并复用 Node.js 22.12.0、pnpm 10.12.4。手动运行前端命令时也请使用匹配版本。

# 安装前端依赖、构建两个前端并启动 Halo 开发容器
./gradlew haloServer

# 修改源码后重新构建并重载开发插件
./gradlew reloadPlugin

# 构建可安装的插件 JAR
./gradlew build

# 仅构建主题静态资源
./gradlew :issue-static:pnpmBuild

haloServer 负责启动服务,不是文件监听器。已经运行时,修改模板、静态源码或后端后执行 reloadPlugin。正式部署使用新的 JAR。

构建关系:

:issue-static:pnpmInstall → :issue-static:pnpmBuild → :processResources
:ui:assemble → :processUiResources
                  ↓
               :classes → :jar / 开发运行
  • Vite 产物:packages/issue-static/build/dist/。
  • 插件运行资源:build/resources/main/static/webAssets/。
  • 浏览器地址:/plugins/PluginIssues/assets/static/webAssets/style.css 和 main.iife.js。
  • Console 产物:build/resources/main/ui/。
  • JAR:build/libs/。

历史 src/main/resources/static/webAssets/ 中的构建产物不再参与打包,也不会被 Vite 改写。请修改源码后重新构建,不要手工修改这些旧文件。Gradle 会跟踪静态源码、模板、CSS 库、配置和 lockfile;输入没有变化时允许跳过构建。

手动检查静态模块:

cd packages/issue-static
pnpm install --frozen-lockfile
pnpm type-check
pnpm lint
pnpm test:styles
pnpm build