{"id":22064,"library":"rollup-plugin-iconify-svg","title":"rollup-plugin-iconify-svg","description":"A Rollup plugin that automatically generates SVG markup from Iconify icon references in Svelte projects. Version 2.2.4. It scans source files for Iconify syntax (e.g., 'fa:random'), fetches SVG data from the Iconify API, and bundles the icons into your app. Offers both JS object output and experimental SVG file output. Provides options for recursive search, logging, and always-save mode. Differentiators: offline-capable after initial fetch, no runtime API calls, and fast iteration compared to manual icon export.","status":"active","version":"2.2.4","language":"javascript","source_language":"en","source_url":"https://github.com/Swiftaff/rollup-plugin-iconify-svg","tags":["javascript","rollup-plugin","svg","iconify"],"install":[{"cmd":"npm install rollup-plugin-iconify-svg","lang":"bash","label":"npm"},{"cmd":"yarn add rollup-plugin-iconify-svg","lang":"bash","label":"yarn"},{"cmd":"pnpm add rollup-plugin-iconify-svg","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Plugin is ESM-only; requires use of import. CommonJS require will not work.","wrong":"const rolluppluginiconifysvg = require('rollup-plugin-iconify-svg')","symbol":"default","correct":"import rolluppluginiconifysvg from 'rollup-plugin-iconify-svg'"}],"quickstart":{"code":"// rollup.config.js\nimport svelte from 'rollup-plugin-svelte';\nimport resolve from '@rollup/plugin-node-resolve';\nimport rolluppluginiconifysvg from 'rollup-plugin-iconify-svg';\n\nexport default {\n  input: 'src/main.js',\n  output: {\n    format: 'iife',\n    name: 'app',\n    file: 'public/build/bundle.js'\n  },\n  plugins: [\n    rolluppluginiconifysvg({\n      targets: [{ src: 'src', dest: 'src/icons.js' }]\n    }),\n    svelte(),\n    resolve({ browser: true }),\n    // ... other plugins\n  ]\n};","lang":"javascript","description":"Shows setup in rollup.config.js with a single target to generate src/icons.js from src."},"warnings":[{"fix":"Add dest file to watch exclude: watch: { exclude: ['src/icons.js'] }","message":"Watch mode can cause infinite rebuilds if dest file is within watched src directory.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Ensure network access or cache API responses. Use alwaysSave: true to force refresh.","message":"Plugin relies on Iconify API; no internet connection will cause build failure.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Check file system permissions or adjust dest path.","message":"The plugin writes a .js file to disk; ensure write permissions in dest directory.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Add livereload({ watch: 'public', delay: 1000 })","message":"If using livereload, you may need to add a delay to allow icons file to be created.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use default ESM import; set commonJs: false.","message":"CommonJS mode (commonJs: true) is deprecated; prefer ESM imports.","severity":"gotcha","affected_versions":">=2.0.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Ensure dest directory exists and is writable, e.g., 'src/'","cause":"Plugin tries to write to a directory that doesn't exist or lacks permissions.","error":"Error: ENOENT: no such file or directory, open 'src/icons.js'"},{"fix":"Check internet connection; consider caching responses or using offline fallback.","cause":"No internet connection or API endpoint unreachable.","error":"Error: Network request to Iconify API failed"},{"fix":"Run 'npm install rollup-plugin-iconify-svg --save-dev'","cause":"Package not installed or missing from node_modules.","error":"Error: Could not resolve 'rollup-plugin-iconify-svg' (did you mean 'rollup-plugin-iconify-svg'?)"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}