SuperAPI AI 工具集

plugin-heavy-dep

前端与建站

查看项目

更新于 10-16 07:24

技能介绍

用途:为轻量级 DSH Web 插件(客户端包小、无构建农场)引入多兆字节的渲染器依赖提供集成清单,内容来自一次真实 mermaid 集成经验。

主要能力与做法:

  1. 判断懒加载还是内联:若依赖会使客户端包膨胀数倍且仅单一功能需要,应拆为独立 chunk,仅在功能实际渲染时动态 import,不要内联进客户端包。
  2. 打包为单文件:关闭代码分割,打包成自包含 ESM 单文件。默认配置会把库内部动态 import 拆成带内容哈希的 sibling chunk,浏览器按 chunk URL 相对解析,易出错。
  3. 通过宿主路由提供:在 webServer 注册前缀路由,仅服务插件自身 lib 目录,路径从 import.meta.url 解析而非 process.cwd();限制扩展名白名单(.js/.mjs);用 path.relative 做包含性防护(不用 startsWith,注意 Windows 盘符大小写差异),并以 application/javascript 提供。宿主路由需重启 dsh 后生效,仅硬刷新无效,新路由 404 通常意味着未重启或安装副本早于该路由。
  4. 懒加载、缓存成功结果并降级:首次渲染时 import() chunk 并缓存成功模块;失败不长期缓存,重试需节流;失败或渲染异常时渲染回退(如原始代码块),加状态属性并记录失败原因。
  5. 不可信标记净化:将渲染器设为严格模式并输出真实 SVG 文本而非 HTML 标签;抑制库的全局错误副作用;再用零依赖白名单方式净化 SVG,仅接受 svg 根,去除 foreignObject/script 等及 on*/@* 与 href/xlink:href。
  6. 模态下的交互归属:全屏缩放/平移模态打开时须独占滚轮事件(含 Ctrl+滚轮),否则会与底层面板行为同时触发。
  7. 发布:把构建 chunk 提交进包并在 files 中声明;在发布说明中写清重启与仅刷新要求;为每个坑点编写回归测试。

限制:以上为集成清单与注意事项,未提供具体版本、安装命令、代码示例或收费信息;缺失事实暂未提供。