2026-09-12 08:41:08 +08:00
|
|
|
import { createApp } from 'vue';
|
|
|
|
|
import IslandApp from './IslandApp.vue';
|
2026-10-06 15:32:01 +08:00
|
|
|
import { applyMotionTokens } from '../renderer/composables/motion.js';
|
2026-09-12 08:41:08 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 灵动岛渲染进程入口。
|
|
|
|
|
* 刻意不引入 Element Plus 等 UI 库:这个窗口极小、常驻桌面,
|
|
|
|
|
* 保持零依赖可以让它在低配机器上也瞬间渲染。
|
|
|
|
|
*/
|
|
|
|
|
const app = createApp(IslandApp);
|
|
|
|
|
|
2026-10-06 15:32:01 +08:00
|
|
|
/**
|
|
|
|
|
* 动效令牌(beUI 的缓动曲线,见 packages/shared/src/motion.ts)写进 `:root`。
|
|
|
|
|
*
|
|
|
|
|
* **必须在这里也注入一次**:灵动岛是**另一个渲染进程**,不共享主窗口的 `:root`。
|
|
|
|
|
* 而 `IslandApp.vue` 的悬停微交互引用了 `var(--ch-dur-fast)` / `var(--ch-ease-out)`——
|
|
|
|
|
* 变量缺席会让整条 `transition` 简写失效(自定义属性解析不出来 → 声明作废),
|
|
|
|
|
* 结果是**完全没有过渡**,比改造前还差。
|
|
|
|
|
*
|
|
|
|
|
* 成本可控:多出来的是共享模块里的令牌常量与弹簧积分(约 2KB),
|
|
|
|
|
* 相比岛内已经打包的 Vue 可以忽略;换来的是"两端一岛同一套曲线、不各抄一份"。
|
|
|
|
|
*/
|
|
|
|
|
applyMotionTokens();
|
|
|
|
|
|
2026-09-12 08:41:08 +08:00
|
|
|
app.config.errorHandler = (error) => {
|
|
|
|
|
console.error('[island] 渲染异常', error);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
app.mount('#app');
|