Files
im0o 3a3798e37b feat: 接入 iconify 图标库,右栏改成 Figma 式收起分组
图标统一走 unplugin-icons + hugeicons,构建期内联,出口收在 src/ui/icons.ts。
顺带修掉 TopBar 那个 undo 图标缺弧命令的 path。

右栏下半四组默认全收,收起态只有一行 32px;顶栏导出按钮改成先展开
「导出与模板」再滚,否则滚到底只看得到一行标题。

属性区去掉分组标题,改成 Figma 那种「字母/图标 + 无边框输入框」两列密排,
新增 W/H 宽高比锁(比例在开锁那一刻定格,不每次编辑现算)。

删掉 Sidebar.vue 和 panels/CanvasPanel.vue:上一轮改 Figma 布局之后
它们已无人 import,--sidebar-w 同批遗留。
2026-09-05 17:51:43 +08:00

36 lines
1.4 KiB
TypeScript

import { fileURLToPath, URL } from "node:url";
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import Icons from "unplugin-icons/vite";
import { fontsPlugin } from "./src/fonts/vite-plugin-fonts";
/**
* 这个工具**只在 dev 下完整可用**:系统字体的枚举与读取走 `fontsPlugin` 挂在 Vite
* 开发服务器上的中间件,`vite build` 出的静态产物里没有那两个接口。
* 这是刻意的——自用工具不值得为此单起一个后端进程。
*/
export default defineConfig({
plugins: [
vue(),
// 图标:`import IconFoo from "~icons/solar/xxx-linear"` 在**构建期**从
// `@iconify-json/*` 里取出 SVG 编成 Vue 组件,不联网、不打包整套图标集。
// `defaultClass` 让所有图标共享一条样式规则(尺寸/描边色见 style.css 的 .icon)。
Icons({ compiler: "vue3", scale: 1, defaultClass: "icon" }),
fontsPlugin(),
],
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
server: {
port: 5180,
watch: {
// `.worktrees/` 底下是并行开发用的完整项目副本。不排除的话,任何一条线改文件
// 都会触发主 dev 的全量重载(它们各有一份 tsconfig,Vite 检测到就清缓存重启),
// 实测会直接把 dev 进程搞挂。
ignored: ["**/.worktrees/**"],
},
},
});