From 7ffd6e599fa978de672a25e8d92a148205566b00 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 28 Aug 2026 18:11:07 +0000 Subject: [PATCH 1/2] Emit valid rolldown-vite options in generated vite.config.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rolldown-vite 8.x warns twice on every prod build/export (client + ssr): 'Invalid input options ... Expected never but received "jsx"' and 'advancedChunks option is deprecated, please use codeSplitting instead'. The template's build.rollupOptions passed jsx: {} — no longer a rolldown input option (JSX is handled by vite/oxc; rolldown moved it under transform.jsx), so it was rejected and ignored — and output.advancedChunks, deprecated in favor of output.codeSplitting which accepts the identical {groups: [...]} shape. Drop the no-op jsx key and rename advancedChunks to codeSplitting. Verified on a blank app export: both warnings gone, build output structure identical (reflex-env chunk still split out, same hash). Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01EMjBXPozsNeQNSBZecNH8x --- news/+vite-rolldown-options.bugfix.md | 1 + .../src/reflex_base/compiler/templates.py | 3 +-- tests/units/utils/test_utils.py | 23 +++++++++++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 news/+vite-rolldown-options.bugfix.md diff --git a/news/+vite-rolldown-options.bugfix.md b/news/+vite-rolldown-options.bugfix.md new file mode 100644 index 00000000000..22bed2cab1d --- /dev/null +++ b/news/+vite-rolldown-options.bugfix.md @@ -0,0 +1 @@ +The generated `vite.config.js` no longer passes options rejected or deprecated by rolldown-vite 8.x: the no-op `rollupOptions.jsx` key is dropped and `output.advancedChunks` migrated to `output.codeSplitting` (same shape), removing the "Invalid input options" and "advancedChunks option is deprecated" warnings from every prod build/export. diff --git a/packages/reflex-base/src/reflex_base/compiler/templates.py b/packages/reflex-base/src/reflex_base/compiler/templates.py index 173c903ef54..dc76bbb72f3 100644 --- a/packages/reflex-base/src/reflex_base/compiler/templates.py +++ b/packages/reflex-base/src/reflex_base/compiler/templates.py @@ -733,9 +733,8 @@ def vite_config_template( if (warning.code === "EVAL" && warning.id && warning.id.endsWith("state.js")) return; warn(warning); }}, - jsx: {{}}, output: {{ - advancedChunks: {{ + codeSplitting: {{ groups: [ {{ test: /env.json/, diff --git a/tests/units/utils/test_utils.py b/tests/units/utils/test_utils.py index 213580abdf7..f0e1efb88e7 100644 --- a/tests/units/utils/test_utils.py +++ b/tests/units/utils/test_utils.py @@ -865,6 +865,29 @@ def test_vite_config_template_minify(minify: bool) -> None: assert f"cssMinify: {expected}," in config +def test_vite_config_template_valid_rolldown_options() -> None: + """The vite config only emits options accepted by rolldown-vite. + + rolldown-vite rejects `rollupOptions.jsx` ("Invalid input options") and + deprecates `output.advancedChunks` in favor of `output.codeSplitting` + (same shape), so the template must emit neither legacy option while + keeping the reflex-env chunk group. + """ + from reflex.compiler import templates as compiler_templates + + config = compiler_templates.vite_config_template( + base="/", + hmr=True, + force_full_reload=False, + experimental_hmr=False, + sourcemap=False, + ) + assert "jsx: {}" not in config + assert "advancedChunks" not in config + assert "codeSplitting: {" in config + assert 'name: "reflex-env",' in config + + def test_vite_config_template_pins_preview_host() -> None: """The vite config pins the preview server to an IPv4 loopback address. From e7ec67518555692e27c3520404dac27546ff5ff4 Mon Sep 17 00:00:00 2001 From: Farhan Date: Sat, 29 Aug 2026 00:09:02 +0500 Subject: [PATCH 2/2] Move news fragment to reflex-base package Claude-Session: https://claude.ai/code/session_011ANiia7ETN9AjY9BoAUL5h --- .../reflex-base/news/6987.bugfix.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename news/+vite-rolldown-options.bugfix.md => packages/reflex-base/news/6987.bugfix.md (100%) diff --git a/news/+vite-rolldown-options.bugfix.md b/packages/reflex-base/news/6987.bugfix.md similarity index 100% rename from news/+vite-rolldown-options.bugfix.md rename to packages/reflex-base/news/6987.bugfix.md