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:
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?
// before
const output = `export { default } from "./${iconName}${
separateAliasesFileExtension ? iconFileExtension : ''
}";\n`;
// after
const output = `export { default } from "./${iconName}${aliasImportFileExtension}";\n`;Steps to reproduce
- Upgrade Sveltekit project to
vite8 and@sveltejs/vite-plugin-svelteto 7 - Build the app on Windows (via GH workflow)
- 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.)
Source: lucide-icons/lucide