Getting started
Install vite-awesome-svg-loader
Section titled “Install vite-awesome-svg-loader”npm i vite-awesome-svg-loaderAdd vite-awesome-svg-loader to Vite config file
Section titled “Add vite-awesome-svg-loader to Vite config file”import { defineConfig } from "vite";import vue from "@vitejs/plugin-vue";
// Import vite-awesome-svg-loaderimport { viteAwesomeSvgLoader } from "vite-awesome-svg-loader";
export default defineConfig({ plugins: [ vue(), // Or whatever framework you're using
// vite-awesome-svg-loader: viteAwesomeSvgLoader({ /* Optional configuration */ }),
// Other plugins... ], // Rest of the configuration...});Optional Typescript Only Register import types
Section titled “ Register import types”This step is needed if you plan to import SVGs with query parameters, for example: import "@/assets/image.svg?source".
There are two methods (without any practical difference between them) to register import types:
1.RecommendedUsing types compiler option
Recommended for new projects because this is what modern Vite presets do.
-
Open
tsconfig.jsonfile. Some Vite presets usetsconfig.app.json, so if you have this one, open it instead oftsconfig.json. -
Locate or create types compiler option.
-
Add
vite-awesome-svg-loaderto it:{"compilerOptions": {"types": ["vite/client", // Already present in modern Vite presets"vite-awesome-svg-loader" // Add this entry]}}
2. Using triple slash directives
Recommended for projects that were set up using old Vite presets.
-
Create
env.d.tsfile or use existing file where you store triple slash directives. -
Add following string to it:
/// <reference types="vite-awesome-svg-loader" /> -
If you’ve created
env.d.tsby yourself, opentsconfig.json(ortsconfig.app.json, if your preset has one) and addenv.d.tsto theincludeproperty:{ "include": ["env.d.ts"] }
Optional Configure loader
Section titled “ Configure loader”This step is highly recommended because you won’t need to import every file with URL parameters.
Start importing files
Section titled “Start importing files”Pick and combine loading methods and available transformations:
import imgUrl from "./image.svg?url";import imgSrc from "./image.svg?source";import preLineWidthImgSrc from "./image.svg?source&preserve-line-width";import recoloredImgSrc from "./image.svg?source&set-current-color";import fullyTransformedImgSrc from "./image.svg?source&preserve-line-width&set-current-color";