symfony/reprise

Integrate Vite and Rsbuild with Symfony, a reprise of Webpack Encore Bundle.

Maintainers

Package info

github.com/symfony/reprise

Type:symfony-bundle

pkg:composer/symfony/reprise

Transparency log

Statistics

Installs: 2 865

Dependents: 0

Suggesters: 0

Stars: 67

Open Issues: 6

v0.7.0 2026-08-07 12:25 UTC

This package is auto-updated.

Last update: 2026-08-14 05:08:16 UTC


README

Symfony Logo

Symfony Reprise Symfony Reprise: Webpack Encore's heritage, for modern bundlers

Latest tag PHP version Node version CI License

Webpack Encore gave Symfony first-class asset integration for Webpack.
Symfony Reprise brings the same to Vite and Rsbuild.

πŸ“£ Read the announcement blog post

Warning

Experimental this bundle is experimental and is likely to change, or even change drastically.

Symfony Reprise covers only the Symfony-side glue the bundlers leave out:

  • 🎯 Multiple entries: build several independent entry points from one config
  • πŸ“„ entrypoints.json: generated in both build and dev-server modes
  • πŸ—ΊοΈ manifest.json: maps each logical filename to its hashed URL
  • πŸ”– Asset versioning: content-hash cache busting, wired into the manifest
  • πŸ“ File copy: copy static files (images, fonts…) into the build, keyed in the manifest
  • πŸ”₯ Dev server & HMR: points Twig at the running Vite/Rsbuild server
  • 🧱 Multiple builds: drive several bundles (e.g. a main app and a separately-built embeddable widget) from one Symfony app
  • 🏷️ Twig tag rendering: reprise_entry_script_tags/reprise_entry_link_tags render straight from entrypoints.json
  • 🧩 Symfony UX / Stimulus: registers controllers.json and local controllers, eager or lazy
  • 🌐 CDN support: serve built assets from an absolute publicPath
  • πŸ›‘οΈ Subresource Integrity: SRI hashes in entrypoints.json
  • πŸ” Customizable tag attributes: RenderAssetTagEvent lets listeners add, change or remove attributes on every rendered tag (e.g. a CSP nonce)

Vite and Rsbuild already handle Sass/Less/PostCSS, TypeScript, JSX/Vue/Svelte, code splitting, content hashing, source maps, minification and HMR on their own, so Symfony Reprise does not reimplement any of that.

It generates the Encore-compatible entrypoints.json and manifest.json that Reprise's own Symfony bundle (RepriseBundle) reads to render the <script> and <link> tags, wires up the native dev server, and turns your Stimulus controllers into a running application.

Read the documentation