Skip to content

Releases: symfony/reprise

🎉 Symfony Reprise 0.1.0

Choose a tag to compare

@Kocal Kocal released this 13 Jul 07:54
Immutable release. Only release title and notes can be modified.
v0.1.0
27809b7

Webpack Encore served Symfony well for years, but it's no longer the tool to reach for. It isn't going anywhere: it's still widely used, and it stays maintained with bug fixes and dependency upgrades. For a new project, though, the ground has shifted.

Webpack has been overtaken by a generation of faster bundlers (Vite, Rsbuild, esbuild, Rolldown) and the JavaScript ecosystem moved with them. On a modern stack (TypeScript, Vue, Tailwind, Vitest, linting), Webpack feels dated, and Symfony AssetMapper's no-build approach only stretches so far.
The Symfony team made the case in symfony/symfony#59707: rather than keep building on aging infrastructure, integrate the modern tools.

That's why Symfony Reprise exists: it brings Encore's Symfony integration to Vite and Rsbuild, without reinventing what those bundlers already do.

The bundler owns the build: TypeScript, Sass/Less/PostCSS, JSX/Vue/Svelte, code splitting, content hashing, source maps, minification, and HMR -- all native, all fast.

Reprise owns the Symfony glue: entrypoints.json and manifest.json, Twig tags that render them (reprise_entry_link_tags / reprise_entry_script_tags), asset versioning through asset(), the dev server and HMR client wired into Twig, file copy, Stimulus controllers, CDN support, and Subresource Integrity.

Installation

composer require symfony/reprise
npm install @symfony/reprise --save-dev

Point your bundler config at @symfony/reprise/vite or @symfony/reprise/rsbuild, add reprise_entry_link_tags('app') and reprise_entry_script_tags('app') to your template, and you're set.

Documentation

The documentation has the full walkthrough, with Vite and Rsbuild side by side.

This is an early, experimental first release, so expect a few rough edges. Send your issues and feedback our way. 🙌