Skip to content

快速开始

安装

前置条件

运行以下命令安装,并且确保你的工作区配置正确:

sh
pnpm add -D vite-plugin-svg-icons-ng
sh
npm i -D vite-plugin-svg-icons-ng
sh
yarn add -D vite-plugin-svg-icons-ng

Usage

vite.config.ts/vite.config.js中导入并配置插件

ts
// ...
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons-ng'
import path from 'node:path'

export default defineConfig({
  plugins: [
    // ...
    createSvgIconsPlugin({
      iconDirs: [path.resolve(process.cwd(), 'src/icons')],
    }),
  ],
})
js
// ...
import path from 'node:path'

export default defineConfig({
  plugins: [
    // ...
    createSvgIconsPlugin({
      iconDirs: [path.resolve(process.cwd(), 'src/icons')],
    }),
  ],
})

接着,在main.ts/main.js导入虚拟模块virtual:svg-icons/register

ts
import 'virtual:svg-icons/register' // recommended
import 'virtual:svg-icons-register' // deprecated
js
import 'virtual:svg-icons/register' // recommended
import 'virtual:svg-icons-register' // deprecated

WARN

虚拟模块 virtual:svg-icons-register 将在未来的版本中废弃。因为它不符合虚拟模块命名空间规范。
使用 import 'virtual:svg-icons/register' 代替。

至此,svg精灵已经生成,可以通过 组件使用

或者,直接在HTML中使用:

html
<svg>
  <use xlink:href="#icon-icon1"></use>
</svg>

获取SymbolId

可以通过virtual:svg-icons/ids获取所有SymbolId的数组

ts
import ids from 'virtual:svg-icons/ids' // recommended
import ids from 'virtual:svg-icons-names' //deprecated
console.log(ids) // ['icon-icon1','icon-icon2','icon-icon3']

WARN

虚拟模块 virtual:svg-icons-names 将在未来的版本中废弃。因为它不符合虚拟模块命名空间规范。
使用 import ids from 'virtual:svg-icons/ids' 代替。