Open
Conversation
Vite 8 replaces esbuild and Rollup with Rolldown (Rust-based bundler). - Bump vite to ^8.0.0 and @vitejs/plugin-react to ^6.0.0 - Replace build.rollupOptions with build.rolldownOptions - Replace optimizeDeps.esbuildOptions (no longer needed, target already set in build.target) - Remove esbuild config (Rolldown preserves legal comments by default) - Remove manualChunks workaround (Rolldown handles CJS differently, the commonjsHelpers circular dependency workaround is not needed) - Replace RollupOutput with RolldownOutput in service worker plugin - Remove esbuild install.js from vaadin-dev-server install-deps script
Rolldown does not guarantee ESM-spec module execution order by default,
which causes null reference errors ('_root') when Vaadin/Polymer
components are initialized out of order. This is triggered when
top-level await is present in the module graph.
Enable output.strictExecutionOrder to inject runtime helpers that
preserve correct initialization order at a slight bundle size cost.
Use separate @rolldown/plugin-babel for Babel transforms since @vitejs/plugin-react v6 removed the babel option. Trim media query in theme-util.js to avoid leading space in link elements. Accept both quote styles in PWA service worker importScripts assertion since Rolldown preserves single quotes unlike esbuild.
Add @babel/core and @rolldown/plugin-babel to expected dev dependencies list in NodeUpdaterTest.
In v6, babel presets and plugins are top-level options instead of nested under a 'babel' key. Removes unnecessary @rolldown/plugin-babel dependency. Adds debug output to PwaTestIT to diagnose SW content.
Revert reactPlugin() back to original babel: nested format — the v6 top-level babel options caused production build failures. The babel option being silently ignored doesn't break existing tests. Fix SW importScripts by using self.importScripts() so Rolldown preserves it in IIFE bundles instead of dropping the bare global call. Remove debug output from PwaTestIT.
@vitejs/plugin-react v6 uses OXC instead of Babel for JSX. Use jsxImportSource option for custom JSX runtime. Add @rolldown/plugin-babel for only the non-JSX babel plugins (function source location and signals transform) without @babel/preset-react to avoid double JSX transformation.
Rolldown uses backtick strings in its output, so checking for specific quote styles doesn't work. Check for importScripts( and the filename separately instead.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.



Vite 8 replaces esbuild and Rollup with Rolldown (Rust-based bundler).