vite-plugin-svg-icons快速入门指南
2026-01-20 02:29:39作者:傅爽业Veleda
项目基础介绍
vite-plugin-svg-icons 是一个专为 Vite 打造的高效SVG精灵图生成插件,旨在简化前端项目中SVG图标管理与使用。此项目主要用 TypeScript 编写,兼容Vue等前端框架,支持预加载所有图标,并在项目运行时仅需一次DOM操作,极大提升性能。
关键技术和框架
- Vite: 高效的前端构建工具,由Vue.js作者尤雨溪开发。
- TypeScript: 提供类型系统的JavaScript超集,提高代码质量和可维护性。
- SVG Sprites: 技术用于合并多个SVG图标到单个图像文件中,减少HTTP请求,提升页面加载速度。
准备工作和详细安装步骤
步骤一:环境准备
确保你的开发环境中已经安装了Node.js(版本 >=12.0.0)和Vite(版本 >=2.0.0)。你可以通过运行以下命令来检查Node.js的版本:
node -v
如果未安装Node.js或版本过低,请访问Node.js官网进行下载并安装。
步骤二:安装vite-plugin-svg-icons
在你的Vite项目根目录下打开终端,执行以下命令安装vite-plugin-svg-icons:
# 使用yarn
yarn add vite-plugin-svg-icons -D
# 或者使用npm
npm install vite-plugin-svg-icons -D
# 或者如果你使用pnpm
pnpm install vite-plugin-svg-icons -D
步骤三:配置Vite
接着,在项目的vite.config.ts文件中引入并配置该插件。如果你尚未创建这个文件,你需要手动创建它。
-
引入
createSvgIconsPlugin函数和path模块:import { defineConfig } from 'vite'; import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; import path from 'path'; -
在
plugins数组中添加配置:export default defineConfig({ plugins: [ createSvgIconsPlugin({ // 设置图标所在文件夹路径 iconDirs: [path.resolve(process.cwd(), 'src/icons')], // 设置symbolId的格式 symbolId: 'icon-[dir]-[name]', // (可选)自定义插入位置,默认为body末尾 // inject: 'body-first', // (可选)自定义DOM节点ID,默认为__svg__icons__dom__ // customDomId: '__my-custom-id__', }), ], });
步骤四:图标目录结构
确保你的图标按照以下结构放置:
src/
└── icons/
├── icon1.svg
├── icon2.svg
└── dir/
└── icon3.svg
步骤五:在组件中使用SVG图标
对于Vue 3项目,创建一个SvgIcon组件来使用图标:
-
创建
src/components/SvgIcon.vue:<template> <svg aria-hidden="true"> <use :xlink:href="symbolId" /> </svg> </template> <script> export default { props: { name: { type: String, required: true, }, prefix: { type: String, default: 'icon', }, }, computed: { symbolId() { return `#${this.prefix}-${this.name}`; }, }, }; </script> -
在其他组件或应用主入口引入并使用:
<!-- src/App.vue --> <template> <div> <SvgIcon name="icon1" /> <SvgIcon name="dir-icon3" /> </div> </template> <script> import SvgIcon from './components/SvgIcon.vue'; export default { components: { SvgIcon, }, }; </script>
至此,您已完成vite-plugin-svg-icons的安装和配置,可以在Vue 3项目中愉快地使用SVG图标了。记得调整图标目录和组件的使用方式以匹配您的实际项目结构。
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0191
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0114
Step-3.7-FlashStep-3.7-Flash是一个拥有 1980 亿参数的稀疏混合专家(MoE)视觉语言模型,由 1960 亿参数的语言主干网络和 18 亿参数的视觉编码器组合而成,具备原生图像理解能力。Python00
JoyAI-EchoJoyAI-Echo,这是一个独立的、仅用于推理的版本,旨在实现分钟级多镜头音视频生成。它采用了经过蒸馏的DMD生成器、配对的跨模态记忆以及故事级别的一致性。其性能的核心在于,一个跨模态视听记忆库能够在长达五分钟的视频中保持角色外观和语音音色的一致性。同时,一个训练后处理流程将基于记忆的强化学习与分布匹配蒸馏相结合,实现了7.5倍的速度提升,显著增强了视觉质量和对齐效果。00
omega-aiOmega-AI:基于java打造的深度学习框架,帮助你快速搭建神经网络,实现模型推理与训练,引擎支持自动求导,多线程与GPU运算,GPU支持CUDA,CUDNN。Java04
llm-universe本项目是一个面向小白开发者的大模型应用开发教程,在线阅读地址:https://datawhalechina.github.io/llm-universe/Jupyter Notebook08
热门内容推荐
最新内容推荐
项目优选
收起
暂无描述
Dockerfile
763
4.96 K
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
856
1.92 K
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
676
1.33 K
Ascend Extension for PyTorch
Python
719
875
deepin linux kernel
C
32
16
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
455
437
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.07 K
1.09 K
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
150
252
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
297
114
昇腾LLM分布式训练框架
Python
178
220