From 46945a9d752f12a1c201434b533caa01c71081ef Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Tue, 26 Aug 2025 15:29:26 +0900 Subject: [PATCH] perf(react): skip transform hook completely in rolldown-vite in dev if possible --- packages/plugin-react/CHANGELOG.md | 2 ++ packages/plugin-react/src/index.ts | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/plugin-react/CHANGELOG.md b/packages/plugin-react/CHANGELOG.md index 887393cb5..bb59e0894 100644 --- a/packages/plugin-react/CHANGELOG.md +++ b/packages/plugin-react/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +### Skip transform hook completely in rolldown-vite in dev if possible ([#783](https://github.com/vitejs/vite-plugin-react/pull/783)) + ## 5.0.1 (2025-08-19) ### Set `optimizeDeps.rollupOptions.transform.jsx` instead of `optimizeDeps.rollupOptions.jsx` for rolldown-vite ([#735](https://github.com/vitejs/vite-plugin-react/pull/735)) diff --git a/packages/plugin-react/src/index.ts b/packages/plugin-react/src/index.ts index 6f6d3adcf..b8ec8236f 100644 --- a/packages/plugin-react/src/index.ts +++ b/packages/plugin-react/src/index.ts @@ -208,8 +208,8 @@ export default function viteReact(opts: Options = {}): Plugin[] { staticBabelOptions = createBabelOptions(opts.babel) if ( + (isRolldownVite || skipFastRefresh) && canSkipBabel(staticBabelOptions.plugins, staticBabelOptions) && - skipFastRefresh && (opts.jsxRuntime === 'classic' ? isProduction : true) ) { delete viteBabel.transform @@ -269,8 +269,7 @@ export default function viteReact(opts: Options = {}): Plugin[] { const isJSX = filepath.endsWith('x') const useFastRefresh = - !isRolldownVite && - !skipFastRefresh && + !(isRolldownVite || skipFastRefresh) && !ssr && (isJSX || (opts.jsxRuntime === 'classic'