插件管理
本项目插件通过命令行创建、安装、删除和打包,安装后的案例在预览页查看。以下说明对应 icegl-three-vue-tres,已同步 2026-09-30 的预览入口与单插件模式更新。
所有命令都在项目根目录执行,插件名使用目录名,不带 .zip 后缀,并保持大小写一致。
icegl-three-vue-tres
├── pluginMaker
│ ├── install // 待安装的插件 ZIP;目录不存在时先创建
│ ├── packages // 自行打包生成的插件 ZIP
│ ├── template.zip // 创建插件使用的模板
│ └── index.cjs // 插件管理脚本
├── src/plugins // 插件代码
└── public/plugins // 插件静态资源
创建插件
在项目根目录运行:
yarn plugin.marker create mydemo
命令会从模板创建 src/plugins/mydemo,创建静态资源目录 public/plugins/mydemo/preview,并在 config.js 中替换插件名和日期。同名插件已经存在时会停止创建。
创建后修改 src/plugins/mydemo/config.js 中的标题、作者、简介和预览配置,把预览图等资源放到自己的插件目录。模板默认设置 tvtstore: 'LOCAL',成功后会提示“请在预览页 → 我的插件中查看”。
启动预览模式,在左侧“全部内容”下方点击“我的插件”:
yarn pre.dev
在预览页查找本地插件
- 本地
config.js中设置tvtstore: 'LOCAL'的插件自动进入“我的插件”,无需配置内容分类。 - “全部内容”页也会优先展示“我的插件”,按
creatTime倒序排列。 - 卡片主标题显示插件的
name,案例标题单独显示,并标注“本地插件”。 - 预览页以案例为卡片单位;一个插件有多个
preview时会显示多张卡片,侧栏数量也按案例计数。 - 搜索和状态筛选仍会影响显示结果。找不到新插件时,先清空搜索和筛选,再检查
preview是否配置了案例。
FREE 等市场插件沿用包内的分发属性,通过内容分类或搜索查找;只有本地 LOCAL 插件进入“我的插件”。配置方法见单个插件的预览分类说明。
安装插件
从官方渠道下载插件包,例如 pluginA.zip,放到 pluginMaker/install 目录下,然后运行:
yarn plugin.marker install pluginA
安装后,代码位于 src/plugins/pluginA,包内包含的静态资源位于 public/plugins/pluginA。安装保留插件包原有的 config.js;当其中的 tvtstore 为 LOCAL 时,也会提示“请在预览页 → 我的插件中查看”。安装包不会自动删除,可自行清理。
启动预览模式,LOCAL 插件在“我的插件”中查看,其他插件通过分类或搜索查找:
yarn pre.dev
安装插件注意事项
- 安装前会检查同名代码目录是否已存在;存在时停止安装,不会覆盖。更新已有插件前,请先备份,再删除旧插件并重新安装。
- 若插件的
require声明了其他插件,请另行安装这些依赖。
删除插件
先保存或备份插件代码与资源,再运行:
yarn plugin.marker remove pluginA
命令会检查 src/plugins/pluginA 和 public/plugins/pluginA,并要求输入 yes 确认:
yes
确认后会删除上述两个目录中存在的目录;输入其他内容则取消。删除前也应检查其他插件的 require 和代码引用,避免删掉仍在使用的依赖。
打包插件
确保插件符合单个插件目录结构,完成开发和测试,并检查 config.js 与静态资源路径。在项目根目录运行:
yarn plugin.marker package pluginX
输出文件为 pluginMaker/packages/pluginX.zip,包含 src/plugins/pluginX,以及存在时的 public/plugins/pluginX。静态资源目录不存在时会提示并跳过。
打包范围
require 用于声明依赖,不会把依赖插件的代码或资源自动装入当前 ZIP。依赖应由使用者另行安装;插件专用代码和资源应放在自己的目录中。
单插件预览与网站构建
需要只展示一个插件的案例,或生成可部署的网站时,使用 yarn pre.dev.one / yarn pre.build.one,并设置 .env.predev.one 中的 FES_APP_PLSNAME。配置与资源保留规则见单插件/案例的自动化处理。
单插件预览页直接展示当前插件的案例,隐藏左侧内容分类,也不请求线上插件菜单与分类。pre.build.one 输出网站 dist;plugin.marker package 输出可安装的插件 ZIP。
