Skip to content

chore: coordinated Svelte 5 + Vite 8 migration #105

@rdemeritt

Description

@rdemeritt

Context

Dependabot PRs #100, #101, and #102 were closed in favour of this coordinated migration. These PRs cannot be merged individually — they cause npm ERESOLVE peer dependency failures and Vite 5→8 is a 3-major jump that requires joint migration with Svelte 5.

Scope

Bump the following packages in lockstep on a single migration branch:

  • svelte 4 → 5
  • vite 5 → 8
  • @sveltejs/vite-plugin-svelte 4 → 7
  • @sveltejs/kit → latest
  • svelte-check → ^4
  • @sveltejs/adapter-node → latest

Prerequisites

  • Node 20.19+ is required by Vite 8 — verify .github/workflows/ci.yml node-version before starting

Migration Steps

  • Verify CI matrix uses Node 20.19+
  • Bump all packages in lockstep in a single branch
  • Run npx sv migrate svelte-5 codemod on src/
  • Fix any remaining Svelte 5 breaking changes (dispatchers, slots, $$props, stores)
  • Update vite.config.ts for Vite 8 (splitVendorChunkPlugin removed, new env API)
  • Run full build: npm run build
  • Run Playwright suite against localhost stack
  • Security review on migration PR before merge

Security Review Note

Security Reviewer must re-review the migration PR prior to merge:

  • XSS surface changes with new Svelte 5 template syntax (runes, snippets)
  • CSP impact from the Rolldown bundler introduced in Vite 8

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions