Vite 项目中需要使用到 svg,我的想法是向直接 import svg 后,可以作为一个组件来使用,例如下面的例子
import Icon from "../path/to/icon.svg";
<Icon />;
通过查阅相关资料,找到了一个插件,叫做 vite-plugin-svgr
,这是一个 vite 插件,可以直接使用,首先我们先来安装它。
yarn add -D @honkhonk/vite-plugin-svgr
然后在 vite.config.js
文件中配置 svg 插件,类似下面
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import svgr from "@honkhonk/vite-plugin-svgr";
export default defineConfig({
plugins: [svgr(), react()],
});
在 import svg 的时候需要在路径最后新增一个 ?component
参数即可,就可以像组件一样使用 svg 了。
import Icon from "./assets/svg/Icon.svg?component";
<Icon />;
最后附上 svgr 使用文档,地址 https://react-svgr.com/docs/ecosystem/#articles