fix(vite-plugin-react-router): preserve existing rollup input entries during SSR build #607
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
The plugin was overwriting the entire rollup.input config during SSR build, which removed entries set by other plugins.
This caused react-router v7's prerender feature to fail because the server-build entry was being removed.
This PR fixes the issue by preserving existing rollup input entries and merging them with the Netlify function handler entry.
The fix handles all possible input formats:
Additionally, this PR enables the previously skipped prerender e2e tests for both serverless and edge sites, which were disabled due to this bug (referenced in React Router issue #13226).
Related Tickets & Documents
rollupOptions.inputoverwrite breaks React Router prerender #606rollupOptions.inputoverwrite breaks React Router prerender #606QA Instructions, Screenshots, Recordings
Reproduction Steps
Navigate to the project folder (default:
my-react-router-app)Replace
react-router.config.tswith:Before this fix
Build fails with:
After this fix
Build succeeds with prerender working:
For us to review and ship your PR efficiently, please perform the following steps:
ensures we can discuss the changes and get feedback from everyone that should be involved. If you`re fixing a
typo or something that`s on fire 🔥 (e.g. incident related), you can skip this step.
guide and passes our tests.
A picture of a cute animal (not mandatory, but encouraged)
🦊