#4159·lucide

Vite cannot resolve modules on Windows

Author: jaadsCreated Mar 16, 2026Updated Sep 16, 2026
Labels🐛 bug

Package

  • lucide
  • lucide-angular
  • lucide-flutter
  • lucide-preact
  • lucide-react
  • lucide-react-native
  • lucide-solid
  • lucide-svelte
  • lucide-vue
  • lucide-vue-next
  • lucide-astro
  • Figma plugin
  • source/main
  • other/not relevant

Version

0.577.0

Can you reproduce this in the latest version?

  • Yes
  • No

Browser

  • Chrome/Chromium
  • Firefox
  • Safari
  • Edge
  • iOS Safari
  • Opera
  • Other/not relevant

Operating system

  • Windows
  • Linux
  • macOS
  • ChromeOS
  • iOS
  • Android
  • Other/not relevant

Description

After upgrading my Sveltekit project to use Vite 8, my build breaks due to Lucide. The new backbone of Vite 8 (rolldown) cannot resolve some modules, see below:

bash
error during build:
Build failed with 19 errors:

[UNRESOLVED_IMPORT] Error: Could not resolve './file-audio.svelte' in ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-audio.js
    ╭─[ ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-audio.js:45:25 ]
    │
 45 │ export { default } from "./file-audio.svelte";
    │                         ──────────┬──────────  
    │                                   ╰──────────── Module not found.
    │ 
    │ Help: '../ui-shares/node_modules/@lucide/svelte/dist/icons/file-audio.js' is imported by the following path:
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-audio.js
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/icons/index.js
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/lucide-svelte.js
    │         - ../ui-shares/dist/metrics/ArchitectureMetrics.svelte
    │         - ../ui-shares/dist/Vizualization.svelte
    │         - ../ui-shares/dist/index.js
    │         - src/routes/(app)/visualization/+page.svelte
────╯

[UNRESOLVED_IMPORT] Error: Could not resolve './file-audio-2.svelte' in ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-audio-2.js
    ╭─[ ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-audio-2.js:45:25 ]
    │
 45 │ export { default } from "./file-audio-2.svelte";
    │                         ───────────┬───────────  
    │                                    ╰───────────── Module not found.
    │ 
    │ Help: '../ui-shares/node_modules/@lucide/svelte/dist/icons/file-audio-2.js' is imported by the following path:
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-audio-2.js
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/icons/index.js
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/lucide-svelte.js
    │         - ../ui-shares/dist/metrics/ArchitectureMetrics.svelte
    │         - ../ui-shares/dist/Vizualization.svelte
    │         - ../ui-shares/dist/index.js
    │         - src/routes/(app)/visualization/+page.svelte
────╯

[UNRESOLVED_IMPORT] Error: Could not resolve './file-badge-2.svelte' in ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-badge-2.js
    ╭─[ ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-badge-2.js:45:25 ]
    │
 45 │ export { default } from "./file-badge-2.svelte";
    │                         ───────────┬───────────  
    │                                    ╰───────────── Module not found.
    │ 
    │ Help: '../ui-shares/node_modules/@lucide/svelte/dist/icons/file-badge-2.js' is imported by the following path:
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-badge-2.js
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/icons/index.js
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/lucide-svelte.js
    │         - ../ui-shares/dist/metrics/ArchitectureMetrics.svelte
    │         - ../ui-shares/dist/Vizualization.svelte
    │         - ../ui-shares/dist/index.js
    │         - src/routes/(app)/visualization/+page.svelte
────╯

[UNRESOLVED_IMPORT] Error: Could not resolve './file-check-2.svelte' in ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-check-2.js
    ╭─[ ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-check-2.js:45:25 ]
    │
 45 │ export { default } from "./file-check-2.svelte";
    │                         ───────────┬───────────  
    │                                    ╰───────────── Module not found.
    │ 
    │ Help: '../ui-shares/node_modules/@lucide/svelte/dist/icons/file-check-2.js' is imported by the following path:
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-check-2.js
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/icons/index.js
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/lucide-svelte.js
    │         - ../ui-shares/dist/metrics/ArchitectureMetrics.svelte
    │         - ../ui-shares/dist/Vizualization.svelte
    │         - ../ui-shares/dist/index.js
    │         - src/routes/(app)/visualization/+page.svelte
────╯

[UNRESOLVED_IMPORT] Error: Could not resolve './file-code-2.svelte' in ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-code-2.js
    ╭─[ ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-code-2.js:45:25 ]
    │
 45 │ export { default } from "./file-code-2.svelte";
    │                         ───────────┬──────────  
    │                                    ╰──────────── Module not found.
    │ 
    │ Help: '../ui-shares/node_modules/@lucide/svelte/dist/icons/file-code-2.js' is imported by the following path:
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/icons/file-code-2.js
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/icons/index.js
    │         - ../ui-shares/node_modules/@lucide/svelte/dist/lucide-svelte.js
    │         - ../ui-shares/dist/metrics/ArchitectureMetrics.svelte
    │         - ../ui-shares/dist/Vizualization.svelte
    │         - ../ui-shares/dist/index.js
    │         - src/routes/(app)/visualization/+page.svelte
────╯

I don't use those mentioned icons in my poroject.

After investigating a bit it seems that those icons like file-audio has been renamed, here into file-headphone. And that "deprecated" icon stubs in dist/icons/ reference .svelte which don't exist anymore and hence cannot be resolved by rolldown.

This only happens on Windows for me.

I assume something needs to be updated in generateAliasesFiles.ts maybe like so?

typescript
// before
const output = `export { default } from "./${iconName}${
  separateAliasesFileExtension ? iconFileExtension : ''
}";\n`;

// after
const output = `export { default } from "./${iconName}${aliasImportFileExtension}";\n`;

Steps to reproduce

  1. Upgrade Sveltekit project to vite 8 and @sveltejs/vite-plugin-svelte to 7
  2. Build the app on Windows (via GH workflow)
  3. See build failing

Checklist

  • I have searched if someone has submitted a similar issue before and there weren't any. (Please make sure to also search closed issues, as this issue might already have been resolved.)