@tomjs/vite-plugin-iconify

A Vite plugin for handling iconify icon sets in environments without internet access.
11,231 9
Install
npm install @tomjs/vite-plugin-iconify
Latest Version:1.5.1
License:MIT
Last Updated:Aug 29, 2026
Links: GitHub  ·  npm
Maintainer: tomgao365

@tomjs/vite-plugin-iconify

npm node-current (scoped) NPM Docs

English | 中文

vite 插件,用于处理 iconify 图标集,可以在无法访问公网的环境下使用

安装

# pnpm
pnpm add @tomjs/vite-plugin-iconify -D

# yarn v1
yarn add @tomjs/vite-plugin-iconify -D

# npm
npm i @tomjs/vite-plugin-iconify --save-dev

说明

  • 根据需要安装 @iconify/json 或 @iconify-json/* 包
  • 插件会先判断是否安装 @iconify/json,否则会读取 @iconify-json/*,并将 @iconify-json/*/icons.json 其复制到 @iconify/json/json/*.json

使用说明

以 vue/react 项目为例

使用插件

vue示例
import iconify from '@tomjs/vite-plugin-iconify';
import vue from '@vitejs/plugin-vue';
import { defineConfig } from 'vite';

export default defineConfig({
  plugins: [
    vue(),
    iconify({
      resources: ['https://unpkg.com/@iconify/json/json'],
      rotate: 3000,
      local: ['ant-design', 'ep'],
    }),
  ],
});
react示例
import iconify from '@tomjs/vite-plugin-iconify';
import react from '@vitejs/plugin-react-swc';
import { defineConfig } from 'vite';

export default defineConfig({
  plugins: [
    react(),
    iconify({
      resources: ['https://unpkg.com/@iconify/json/json'],
      rotate: 3000,
      local: ['ant-design', 'ep'],
    }),
  ],
});
文档
参数
参数名 类型 默认值 说明
selector string 'title' 标签选择器,注入IconifyProviders脚本添加在指定的标签后面
resources string[] [] 图标 API 地址,默认带上 https://api.iconify.design
rotate number 750 使用下一个主机之前的超时时间(以毫秒为单位)
timeout number 5000 API 查询被视为失败之前的超时时间(以毫秒为单位)
version string 5000 设置要使用的@iconify/json版本。默认值从package.json读取,如果@iconify/json不存在,使用"latest"
local 'boolean'|'IconifySet[]'|IconifyLocal[] false 本地图标集配置

resources: 你可以添加 npm cdn 或自定义url

IconifySet

iconify 图标集,参考 icon sets 或 Icônes

IconifyLocal

配置该参数,会根据 sets 配置,将本地图标集复制到 outDir 目录下

参数名 类型 默认值 说明
sets IconifySet[] [] iconify 图标集
icons ${IconifySet}:${string} [] iconify 图标列表
base string '/' 同 vite 配置 base 选项
outDir string 'dist' 本地输出目录, 默认同 vite 配置 build.outDir 选项
path string 'npm/@iconify/json@{version}' 本地输出路径,对应模块url也会替换为该路径

使用cli

生成 iconify 图标集数据,用于图标选择等功能使用

  • 以在 package.json 的 scripts 中添加 ti ant-design ep --path src/constants
  • 直接运行 pnpm ti ant-design ep --path src/constants
Usage:
  $ ti [...sets]

Commands:
  [...sets]  create icon collection data based on @iconify/json in the project

For more info, run any command with the `--help` flag:
  $ ti --help

Options:
  --path <path>  [string] output file path. (default: src)
  --name <name>  [string] output file name. if tsconfig is exists, default is 'iconify.ts', or is 'iconify.js'
  --type <type>  ["esm" | "cjs"] output file type. (default: esm)
  -h, --help     Display this message
  -v, --version  Display version number

开发

  • 开发环境

    • git
    • node>=16
    • pnpm>=8
  • 首次使用,需要安装依赖,执行如下命令

# 安装依赖
pnpm i
# 编译库
pnpm build
  • 调试 vue 项目,执行如下命令
cd examples/vue
pnpm build
pnpm preview
  • 调试 react 项目,执行如下命令
cd examples/react
pnpm build
pnpm preview

Related Packages

vite-plugin-iconify-offline

Vite 插件:构建时自动扫描 Iconify 图标引用并预注册,实现零运行时开销的离线图标方...

2,114 4
vite-plugin-laravel-translations

Vite Plugin to make Laravel Translations globally available as JSON field.

18,030 11
@onoxm/vite-plugin-auto-router

a vite plugin for automatically generating react or vue route files

12,808
@tomjs/vite-plugin-html

A Vite plugin for handling HTML files, providing compression, template, and CDN...

3,753 3
vite-plugin-generate-file

Generate extra file to dist folder.

1,840,535 16

Version History

Version Released License
1.5.1 MIT
1.5.0 MIT
1.4.0 MIT
1.3.0 MIT
1.2.1 MIT