@apigo.cc/loader 模块调度中心
@apigo.cc/loader 是整个 @apigo.cc 体系的入口调度中心。它负责根据当前环境自动生成 importmap,并管理各模块的版本。
一、 集成方式
1. 引入 Loader (任选一个 CDN 镜像复制即用)
直接引用打包好的 loader.min.js,它会自动根据当前的加载源适配 CDN 镜像:
<!-- jsDelivr (默认推荐) -->
<script src="https://cdn.jsdelivr.net/npm/@apigo.cc/loader@1.0.3/dist/loader.min.js"></script>
<!-- esm.sh -->
<script src="https://esm.sh/@apigo.cc/loader@1.0.3/dist/loader.min.js"></script>
<!-- unpkg.com -->
<script src="https://unpkg.com/@apigo.cc/loader@1.0.3/dist/loader.min.js"></script>
<!-- unpkg.zhimg.com (中国加速) -->
<script src="https://unpkg.zhimg.com/@apigo.cc/loader@1.0.3/dist/loader.min.js"></script>
<!-- npm.elemecdn.com (中国加速) -->
<script src="https://npm.elemecdn.com/@apigo.cc/loader@1.0.3/dist/loader.min.js"></script>
2. 自动注入 Importmap (支持做减法)
在 HTML 中引入任意一个镜像的 loader,并声明加载所有已有项目模块(在实际生产中可按需做减法删除不需要的项):
<script src="https://cdn.jsdelivr.net/npm/@apigo.cc/loader@1.0.3/dist/loader.min.js"></script>
<script>
// 声明需要使用的模块,自动生成 importmap (版本号在 build 时由脚本自动同步至最新)
Loader.load('state:1.0.12','bootstrap:1.0.4','base:1.0.8','datatable:1.0.7','kanban:1.0.1','mindmap:1.0.1','chart:1.0.1','editor:1.0.1');
</script>
<!-- 随后即可使用原生 import -->
<script type="module">
// 核心开发范例:导入核心状态、UI 引擎以及最核心的 UI/网络基建 (base)
import { NewState, LocalStorage } from '@apigo.cc/state';
import { Bootstrap } from '@apigo.cc/bootstrap';
import { HTTP, UI } from '@apigo.cc/base';
// 1. 初始化配色与深色模式绑定
Bootstrap.config({ primary: '#6366f1' });
Bootstrap.bindDarkMode(LocalStorage, 'darkMode');
// 2. 使用 base 提供的全局 UI 能力
UI.toast('系统已成功加载');
// 3. 使用 base 提供的 HTTP 请求工具
HTTP.get('/api/status').then(res => {
console.log('API Response:', res);
});
</script>
3. 原生朴素写法 (手动定义)
如果您不想使用 Loader.load 的自动注入,也可以手动定义 importmap(同样可以通过直接删除无用项来做减法):
<script type="importmap">
{
"imports": {
"@apigo.cc/state": "https://cdn.jsdelivr.net/npm/@apigo.cc/state@1.0.12/dist/state.min.js",
"@apigo.cc/bootstrap": "https://cdn.jsdelivr.net/npm/@apigo.cc/bootstrap@1.0.4/dist/bootstrap.min.js",
"@apigo.cc/base": "https://cdn.jsdelivr.net/npm/@apigo.cc/base@1.0.8/dist/base.min.js",
"@apigo.cc/datatable": "https://cdn.jsdelivr.net/npm/@apigo.cc/datatable@1.0.7/dist/datatable.min.js",
"@apigo.cc/kanban": "https://cdn.jsdelivr.net/npm/@apigo.cc/kanban@1.0.1/dist/kanban.min.js",
"@apigo.cc/mindmap": "https://cdn.jsdelivr.net/npm/@apigo.cc/mindmap@1.0.1/dist/mindmap.min.js",
"@apigo.cc/chart": "https://cdn.jsdelivr.net/npm/@apigo.cc/chart@1.0.1/dist/chart.min.js",
"@apigo.cc/editor": "https://cdn.jsdelivr.net/npm/@apigo.cc/editor@1.0.1/dist/editor.min.js"
}
}
</script>
<script type="module">
import { NewState } from '@apigo.cc/state';
import { HTTP, UI } from '@apigo.cc/base';
// ... 业务代码
</script>
二、 本地开发与调试重定向
在本地开发时,如果需要将某些模块重定向到您本地的开发服务器(例如 Vite 本地服务),只需在 Loader.load 对应的模块中传入本地 URL 或相对路径。Loader 内部会自动识别并将其作为自定义地址使用:
Loader.load('state:1.0.12',
'bootstrap:http://localhost:5173/src/index.js', // 调试重定向:指向本地 Vite 源码服务
'base:1.0.7','datatable:1.0.7','kanban:1.0.1','mindmap:1.0.1','chart:1.0.1','editor:1.0.1');
三、 核心特性
- 多镜像自适应:自动识别
loader.min.js的来源 URL,并自动将其他模块指向相同的 CDN 镜像。 - 默认版本管理:内置了各组件的稳定版本号,无需手动记忆。
- 零配置:只需一行代码即可完成整个生态链的模块映射。
四、 支持模块清单
所有模块均发布在 @apigo.cc 组织下:
state(原子状态机)bootstrap(UI 引擎)base(常用控件库)datatable(高性能表格)kanban(看板)mindmap(思维导图)chart(图表)editor(代码编辑器)
Description
Languages
JavaScript
92.4%
HTML
7.6%