插件介绍
点击方 👇🏻 预览地址:
可下载的源码包不是插件包,而是单独的插件发布服务源码包,您可以下载使用
或者通过 gitee开源地址一样获得:https://gitee.com/ice-gl/dynamic-component-service
项目详细文档详见:
https://docs.icegl.cn/docs/three-vue-tres/dynamic-component-service/introduction.html
✨ 项目简介
dynamic-component-service(loadDynamicComponent) 是 tvt.js 生态下的一套动态组件发布、加载与调试解决方案。
它的核心目标是: 让 自研或第三方组件 可以 脱离 tvt.js 开源基座独立维护, 同时又能被 tvt.js 在线编辑器动态加载,获得完整编辑能力,并支持源码导出与二次开发。
🎯 设计目的
1️⃣ 解耦商业组件与 tvt.js 基座
- 一些开发者的组件属于 商业项目
- 不希望直接提交到 tvt.js 开源仓库
- 希望组件 独立发布、独立部署
- 但在生产项目中,仍然可以通过 tvt.js 基座动态加载并使用
👉 dynamic-component-service 提供了一种 解耦但可集成 的方案。
2️⃣ 动态组件 + 在线编辑 + 源码导出
将 自研或第三方代码 简单封装成「动态组件」
挂载到 tvt.js 在线三维场景编辑器
自动获得:
- 组件参数可视化配置
- 与现有 高级组件 / 模型库 / 场景系统 联动
支持:
- 在线调试与预览
- 导出组件配置
- 直接导出插件源码包
- 在 tvt.js 基座中进行 二次开发
关于 vite-plugin-federation
本项目通过 @originjs/vite-plugin-federation 实现动态组件的 发布 / 远程加载 / 模块共享。
官方文档: 👉 https://www.npmjs.com/package/@originjs/vite-plugin-federation
本项目中:
- 已完成 federation 默认配置
- tvt.js 开源基座中也已配置好对应加载逻辑
- 只需简单配置,即可完成 组件互通
🚀 快速开始
环境要求
- Node.js(推荐 LTS)
- Yarn
获取代码
git clone https://gitee.com/ice-gl/dynamic-component-service cd dynamic-component-service
安装依赖
yarn
常用命令说明
🔧 本地开发(仅调试)
yarn dev
⚠️ 注意 federation 动态组件机制 不支持 dev 模式发布服务
dev仅用于本地组件页面调试
📦 构建组件服务
yarn build
构建完成后,可将产物部署到自己的服务器。
注意事项:
当前版本仅支持 域名根目录部署
请注意 HTTP / HTTPS 跨域问题
- 建议提前了解 Web 服务跨域配置(CORS)
👀 本地预览(推荐)
yarn preview
- 默认端口:
5000 - 启动后即可作为 完整的动态组件服务
可将该地址配置到:
- tvt.js 开源基座 👉 https://opensource.icegl.cn/#/plugins/loadDynamicComponent/readConfig
- 区域三维场景编辑器 👉 https://oss.icegl.cn/p/zone3Deditor/#/plugins/zone3Deditor/index
用于 调试 / 编辑 / 开发。
🔁 热更新服务(推荐开发方式)
yarn serve
等价于:
yarn build + yarn preview(带监听)
- 文件改动自动重新编译
- 本地 5000 端口实时更新组件服务
更多说明详见文档:
https://docs.icegl.cn/docs/three-vue-tres/dynamic-component-service/introduction.html
