# @web/loader 模块调度中心

`@web/loader` 是整个 `@web` 体系的入口调度中心。它负责根据当前环境自动生成 `importmap`，并管理各模块的版本。

---

## 一、 集成方式

### 方式一：内联引导 (推荐 - 无额外请求)
在 HTML 的 `<head>` 顶部加入以下代码。这种方式不需要额外请求 `loader.min.js` 文件。

```html
<script>
(function __load(tpl, ...pkgs) {
    const DEFAULT_VERSIONS = { state: 'v1.0.11', bootstrap: 'v1.0.1', base: 'v1.0.7' };
    const importMap = { imports: {} };
    pkgs.forEach(pkg => {
        const [name, version] = pkg.split(':');
        const v = version || DEFAULT_VERSIONS[name] || 'main';
        importMap.imports[`@web/${name}`] = tpl.replace(/{project}/g, name).replace(/{tag}/g, v);
    });
    const s = document.createElement('script');
    s.type = 'importmap';
    s.textContent = JSON.stringify(importMap);
    document.currentScript.parentNode.insertBefore(s, document.currentScript);
})('https://apigo.cc/web/{project}/raw/tag/{tag}/dist/{project}.js', 'state', 'bootstrap', 'base');
</script>
```

### 方式二：引用外部 Loader
直接引用打包好的 `loader.min.js`。它会自动根据当前的 URL 模板进行调度。

```html
<script src="https://apigo.cc/web/loader/raw/tag/v1.0.0/dist/loader.min.js"></script>
<script>
    // 无需版本号，自动使用内置的默认版本
    Loader.load('state', 'bootstrap', 'base');
</script>
```

---

## 二、 核心特性

1.  **智能模板 (Smart Templating)**：自动根据 `loader.js` 的加载路径推断其他组件的下载路径。
2.  **默认版本 (Default Versioning)**：构建时内置了 `@web` 家族各成员的推荐稳定版本，解决“版本选择困难症”。
3.  **按需加载 (On-demand)**：在页面头部一次性声明所需模块，避免加载无关资源。

---

## 三、 支持模块清单
*   `state` (原子状态机)
*   `bootstrap` (UI 引擎)
*   `base` (常用控件库)
*   `dataTable` (高性能表格)
*   `kanban` (看板)
*   `mindmap` (思维导图)
*   `chart` (图表)
