@fontize/vite
v0.1.3
Published
fontize 的 Vite 装配层:构建期静态提取 useText 字面量与子集产物输出、dev 文本收集中间件(不依赖 Nuxt)
Maintainers
Readme
@fontize/vite
fontize 的框架无关 Vite 装配层:构建期静态提取 useText 字面量、dev 实时文本收集中间件与字体 HMR、构建产物输出(hash woff2 + 固定名 fonts.css)。纯 Vite 项目无需 Nuxt 即可使用 fontize;@fontize/nuxt 亦由本包的低阶部件组装。
// vite.config.ts
import { fontizeVite } from '@fontize/vite'
import vue from '@vitejs/plugin-vue'
import { defineConfig } from 'vite'
export default defineConfig({
plugins: [
vue(),
fontizeVite({ fonts: [{ alias: 'noto-serif', src: './fonts/NotoSansSC.ttf' }] }),
],
})// main.ts
import { createFontizeClient } from '@fontize/vite/client'
import { createApp } from 'vue'
import App from './App.vue'
createApp(App).use(createFontizeClient()).mount('#app')- dev:connect 中间件收集文本、实时重建子集,
fontize:updatedws 事件驱动字体热替换 - build:静态提取字面量(省略 alias 的调用回退注册表首字体)→
transformIndexHtml注入/fonts.csslink →closeBundle落盘产物 - 自定义 SSR:
createDirectTransport(state)提供进程内直写 transport(缺省 alias 同规则回退) - 装配辅助:再导出
getDefaultAlias/resolveCollectAlias(默认字体规则与 alias 归一化的单一出处,来自@fontize/core)
限制:dev 限 base: '/'(build 支持任意 base);纯 SPA 的运行时动态文本不入子集,用 include 配置兜底;as 重命名导入 × 非生产构建(非 inline 编译)的模板内联调用不参与静态提取(已知边界)。
完整文档与在线演示见仓库:github.com/Lionad-Morotar/fontize
License
MIT
