Smail/docs/插件构建与配置.md
smail 4ea3a39e41
Some checks are pending
Security Checks / security (push) Waiting to run
拆分插件三级配置菜单并统一三插件构建打包
2026-09-06 16:22:38 +08:00

2.6 KiB
Raw Blame History

插件构建与配置

配置入口

在“设置 → 配置管理 → 插件配置”中选择三级菜单:

  • 垃圾邮件拦截
  • Telegram 推送
  • 微信推送

每次只显示所选插件的字段。切换页面前会提示未保存的编辑内容;三个插件仍共用后端插件配置分区,保存时保留其余插件、内部字段和权限。服务器存在候选配置时,页面会提示候选涉及哪些插件,应用时整个候选一起生效。

Windows 开发构建

先安装 frontend 和 plugins/pmail_telegram_push 的前端依赖,然后在项目根目录运行:

powershell -NoProfile -ExecutionPolicy Bypass -File deploy/build.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File deploy/start-dev.ps1 -Service backend

修改后端或重新编译正在运行的插件前,先停止对应开发服务。-SkipFrontend 只跳过主前端,三个插件始终随开发构建编译,Telegram 的嵌入页面也会重新生成。

  • 主前端:out/frontend
  • 后端及管理工具:out/backend
  • 三个插件:out/plugins/spam_block.exe、out/plugins/pmail_telegram_push.exe、out/plugins/wechat_push.exe
  • 开发服务工作目录:out,保证相对路径 plugins 指向实际插件产物
  • SMAIL_ROOT 仍固定到项目根目录,现有账号、邮件数据库和运行配置保持在根目录 config,不能复制一份到 out/config

跨平台构建与发布

make build

构建依赖顺序为:主前端 → 后端、三个插件 → 发布目录。使用并行构建时也不会在产物尚未生成前打包。

插件统一构建入口:

node deploy/build-plugins.mjs --target=linux_amd64
node deploy/build-plugins.mjs --target=windows_amd64
node deploy/build-plugins.mjs --all

支持 Linux、Windows、macOS 的 amd64 和 arm64。插件产物位于 out/plugins/<平台>_<架构>,发布目录位于 out/package/<平台>_<架构>。每个平台的发布目录均包含主程序、管理工具、三个插件及发布元数据;插件使用后端目录中约定的固定文件名,不需要手动去掉平台后缀。

GitHub 发布工作流复用相同的插件构建脚本。三个插件保持独立进程,随主程序一起交付,并非合并进主程序执行文件;原有启停配置和进程隔离检查不变。编译成功不代表第三方服务已配置、推送已送达或生产平台隔离验收完成。Windows 生产模式现有的插件隔离限制仍然保留,不会因打包而绕过。

构建和打包不清理旧文件。旧版平铺产物会保留,但不会被新的按平台打包流程选入。