Nuxt Nation 大会即将到来。加入我们,时间为 11 月 12 日至 13 日。

@coremyslo/nuxt-icon-font

自动从包含 SVG 图标的指定文件夹生成字体和自定义属性(变量),并通过实时监控将其注入页面。

@coremyslo/nuxt-icon-font

npm versionnpm downloadsLicenseNuxt

Nuxt 图标字体生成器


注意:此模块仅与 Nuxt 3 兼容。


功能

  • 🕵️‍♂️ 监视指定文件夹(以及子文件夹)中的 SVG 图标,并在更改时生成字体
  • 💅 通过 SVGO 优化 SVG 文件
  • 🤯 手动或基于 browserslist 自动检测要生成的字体格式
  • 🏗️ 生成并注入自定义属性(变量)以及图标代码到页面中,其中 SVG 文件名用作变量名
  • ❤️ 检测并生成最流行的字体格式为 base64 以减少页面跳转效果

使用

<template>
  <p>I'm a text with icon!</p>
</template>
<style scoped lang="scss">
  p {
    &:before {
      content: var(--icon-font-house);
      font-family: "icon-font";
    }
  }
</style>

设置

  1. @coremyslo/nuxt-icon-font 依赖项添加到您的项目中
npx nuxi@latest module add icon-font
  1. my-module 添加到 nuxt.config.tsmodules 部分
export default defineNuxtConfig({
  modules: [
    "@coremyslo/nuxt-icon-font"
  ]
})
  1. 可选nuxt.config.ts 中根据您的需求进行配置。以下是默认配置。
export default defineNuxtConfig({
  // ...
  iconFont: {
    // Font name to be used in "font-family" and custom properties generated prefix "--icon-font-svgiconfilename"
    name: "icon-font",
    // folder with icons to watch
    sourceDirPath: "assets/icon-font",
    // target folder for generated fonts in "public" folder
    targetDirPath: "icon-font",
    // font formats to generate, fallback to ["woff2"] in case browserslist is not used, example for manual configuration: ["svg", "ttf", "woff", "woff2", "eot"] in any order
    formats: getFontFormatsList(browserslist()),
    // Generates font in memory as "woff" and injects it as base64 to reduce page jump effect, ignores "formats" option
    base64: true,
    // unicode symbol for first icon in iconfont (makes sense to change only if you're not going to use custom properties)
    unicode: "0xE900",
    // generated custom properties (variables) format. Other options are: "snake", "pascal", "camel", "header", "constant"
    case: "kebab"
  }
})