动态组件发布服务

dynamic-component-service(loadDynamicComponent) 是 tvt.js 生态下的一套动态组件发布、加载与调试解决方案。它的核心目标是: 让 自研或第三方组件 可以 脱离 tvt.js 开源基座独立维护, 同时又能被 tvt.js 在线编辑器动态加载,获得完整编辑能力,并支持源码导出与二次开发。

动态组件发布服务

dynamic-component-service(loadDynamicComponent) 是 tvt.js 生态下的一套动态组件发布、加载与调试解决方案。它的核心目标是: 让 自研或第三方组件 可以 脱离 tvt.js 开源基座独立维护, 同时又能被 tvt.js 在线编辑器动态加载,获得完整编辑能力,并支持源码导出与二次开发。

预览截图

插件介绍

点击方 👇🏻 预览地址:

https://dcser.icegl.cn


可下载的源码包不是插件包,而是单独的插件发布服务源码包,您可以下载使用

或者通过 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 实现动态组件的 发布 / 远程加载 / 模块共享

🚀 快速开始

环境要求

  • 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

构建完成后,可将产物部署到自己的服务器。

注意事项:

  1. 当前版本仅支持 域名根目录部署

  2. 请注意 HTTP / HTTPS 跨域问题

    • 建议提前了解 Web 服务跨域配置(CORS)

👀 本地预览(推荐)

yarn preview
  • 默认端口:5000
  • 启动后即可作为 完整的动态组件服务

可将该地址配置到:

用于 调试 / 编辑 / 开发


🔁 热更新服务(推荐开发方式)

yarn serve

等价于:

yarn build + yarn preview(带监听)
  • 文件改动自动重新编译
  • 本地 5000 端口实时更新组件服务


更多说明详见文档:

https://docs.icegl.cn/docs/three-vue-tres/dynamic-component-service/introduction.html

2026-01-12 17:53:47
测试完毕,并上架插件
版本正持续更新和优化,期待更多功能吧