{"id":22794,"library":"vite-plugin-purge-icons","title":"vite-plugin-purge-icons","description":"Vite plugin for PurgeIcons that bundles only the SVG icons you actually use, drastically reducing bundle size. Current stable version 0.10.0 works with Vite 2+. Maintained by Anthony Fu, released under MIT. Differentiators: tree-shakes icon sets from @iconify/json, supports local and online icon loading, and integrates seamlessly with Vue/React via import side effect. Supports Node >= 12, ships TypeScript types.","status":"active","version":"0.10.0","language":"javascript","source_language":"en","source_url":"https://github.com/antfu/purge-icons","tags":["javascript","typescript"],"install":[{"cmd":"npm install vite-plugin-purge-icons","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-purge-icons","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-purge-icons","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency: Vite >= 2 is required to use the plugin","package":"vite","optional":false},{"reason":"runtime dependency for rendering icons in browser","package":"@iconify/iconify","optional":false},{"reason":"optional dependency: provides local icon sets to avoid online fetch","package":"@iconify/json","optional":true}],"imports":[{"note":"ESM-only; CommonJS require will break in modern Vite setup. Use default import.","wrong":"const PurgeIcons = require('vite-plugin-purge-icons')","symbol":"default","correct":"import PurgeIcons from 'vite-plugin-purge-icons'"},{"note":"This is a default export, not a named export. Named import yields undefined.","wrong":"import { PurgeIcons } from 'vite-plugin-purge-icons'","symbol":"PurgeIcons","correct":"import PurgeIcons from 'vite-plugin-purge-icons'"},{"note":"This is a side-effect only import; the package has no exports. Do not destructure.","wrong":"import { generated } from '@purge-icons/generated'","symbol":"@purge-icons/generated","correct":"import '@purge-icons/generated'"}],"quickstart":{"code":"// vite.config.js\nimport { defineConfig } from 'vite'\nimport PurgeIcons from 'vite-plugin-purge-icons'\n\nexport default defineConfig({\n  plugins: [\n    PurgeIcons({\n      /* optional: PurgeIcons options */\n    })\n  ]\n})\n\n// In your entry file (e.g., main.js)\nimport { createApp } from 'vue'\nimport App from './App.vue'\nimport '@purge-icons/generated'\n\ncreateApp(App).mount('#app')","lang":"typescript","description":"Adds PurgeIcons plugin to Vite config and imports the generated icon bundle. Requires installing @iconify/iconify as runtime dep and @iconify/json as optional dev dep."},"warnings":[{"fix":"Upgrade to v0.5.0 or later, and ensure Vite >= 2.","message":"Vite 2 is supported from v0.5.x, Vite 1's support is discontinued","severity":"breaking","affected_versions":"<0.5.0"},{"fix":"Install @iconify/json as a dev dependency to use local icon sets.","message":"When @iconify/json is not installed, PurgeIcons fetches icons online, which may fail in offline/air-gapped environments","severity":"gotcha","affected_versions":"all"},{"fix":"Use static icon names or add them to the safelist in PurgeIcons options.","message":"The plugin only purges icons used in the application; icons used dynamically (e.g., via string concatenation) may be removed incorrectly","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Add 'import \"@purge-icons/generated\"' to your main JS/TS file and ensure the plugin is added to Vite config.","cause":"Missing the import of '@purge-icons/generated' in entry file or plugin not properly configured in vite.config","error":"Error: Cannot find module '@purge-icons/generated'"},{"fix":"Manually install @iconify/json as dev dependency: pnpm add -D @iconify/json","cause":"PNPM strict resolution; @iconify/json is optional and may not be installed by default","error":"ERR_PNPM_NO_MATCHING_VERSION... @iconify/json"},{"fix":"Change to: import PurgeIcons from 'vite-plugin-purge-icons'","cause":"Using named import { PurgeIcons } instead of default import","error":"TypeError: PurgeIcons is not a constructor"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}