These options now allow to completely override the files processed by the plugin (#122). This is more in line with other Rollup/Vite plugins and simplify the setup of enabling Fast Refresh for .mdx files. This can be done like this:
These changes also allow to apply Babel plugins on files outside Vite root (expect in node_modules), which improve support for monorepo (fix #16).
With these changes, only the file extensions is used for filtering processed files and the query param fallback is removed.
jsxRuntime
The support for React auto import when using classic runtime is removed. This was prone to errors and added complexity for no good reason given the very wide support of automatic runtime nowadays. This migration path should be as simple as removing the runtime option from the config.
Removed options
fastRefresh (#122) This should be correctly activated by plugin without configuration.
jsxPure (#129) This is a niche use case that was just passing down the boolean to esbuild.jsxSideEffects.
Perf
This release goes in hand with the upcoming Vite 4.3 release focusing on performances:
The return type has changed from react(): PluginOption[] to more specialized type react(): Plugin[]. This allows for type-safe manipulation of plugins, for example:
// previously this causes type errors
react()
.map(p => ({ ...p, applyToEnvironment: e => e.name === 'client' }))
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase will rebase this PR
@dependabot recreate will recreate this PR, overwriting any edits that have been made to it
@dependabot merge will merge this PR after your CI passes on it
@dependabot squash and merge will squash and merge this PR after your CI passes on it
@dependabot cancel merge will cancel a previously requested merge and block automerging
@dependabot reopen will reopen this PR if it is closed
@dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
@dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react-swc) from 3.10.2 to 4.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/vitejs/vite-plugin-react/releases"><code>@vitejs/plugin-react-swc</code>'s releases</a>.</em></p>
<blockquote>
<h2>[email protected]</h2>
<ul>
<li>Support <a href="https://vitest.dev/config/#deps-experimentaloptimizer">Vitest deps.experimentalOptimizer</a></li>
<li>Support using components inside web workers (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/181">#181</a>)</li>
</ul>
<h2>[email protected]</h2>
<h3>Set <code>optimizeDeps.rollupOptions.transform.jsx</code> instead of <code>optimizeDeps.rollupOptions.jsx</code> for rolldown-vite (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/735">#735</a>)</h3>
<p><code>optimizeDeps.rollupOptions.jsx</code> is going to be deprecated in favor of <code>optimizeDeps.rollupOptions.transform.jsx</code>.</p>
<h2>[email protected]</h2>
<h2>Options changes</h2>
<h3><code>include</code>/<code>exclude</code></h3>
<p>These options now allow to completely override the files processed by the plugin (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/122">#122</a>). This is more in line with other Rollup/Vite plugins and simplify the setup of enabling Fast Refresh for <code>.mdx</code> files. This can be done like this:</p>
<pre lang="js"><code>export default defineConfig({
plugins: [
{ enforce: 'pre', ...mdx() },
react({ include: /\.(mdx|js|jsx|ts|tsx)$/ }),
],
})
</code></pre>
<p>These changes also allow to apply Babel plugins on files outside Vite root (expect in node_modules), which improve support for monorepo (fix <a href="https://redirect.github.com/vitejs/vite-plugin-react/issues/16">#16</a>).</p>
<p>With these changes, only the file extensions is used for filtering processed files and the query param fallback is removed.</p>
<h3><code>jsxRuntime</code></h3>
<p>The support for React auto import when using classic runtime is removed. This was prone to errors and added complexity for no good reason given the very wide support of automatic runtime nowadays. This migration path should be as simple as removing the runtime option from the config.</p>
<h3>Removed options</h3>
<ul>
<li><code>fastRefresh</code> (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/122">#122</a>) This should be correctly activated by plugin without configuration.</li>
<li><code>jsxPure</code> (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/129">#129</a>) This is a niche use case that was just passing down the boolean to <code>esbuild.jsxSideEffects</code>.</li>
</ul>
<h2>Perf</h2>
<p>This release goes in hand with the upcoming Vite 4.3 release focusing on performances:</p>
<ul>
<li>Cache plugin load (<a href="https://redirect.github.com/vitejs/vite-plugin-react/issues/141">#141</a>)</li>
<li>Wrap dynamic import to speedup analysis (<a href="https://redirect.github.com/vitejs/vite-plugin-react/issues/143">#143</a>)</li>
</ul>
<h2>Other notable changes</h2>
<ul>
<li>Silence "use client" warning (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/144">#144</a>, fix <a href="https://redirect.github.com/vitejs/vite-plugin-react/issues/137">#137</a>)</li>
<li>Fast Refresh is applied on JS files using automatic runtime (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/122">#122</a>, fix <a href="https://redirect.github.com/vitejs/vite-plugin-react/issues/83">#83</a>)</li>
<li>Vite 4.2 is required as a peer dependency (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/128">#128</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc/CHANGELOG.md"><code>@vitejs/plugin-react-swc</code>'s changelog</a>.</em></p>
<blockquote>
<h2>4.0.1 (2025-08-19)</h2>
<h3>Set <code>optimizeDeps.rollupOptions.transform.jsx</code> instead of <code>optimizeDeps.rollupOptions.jsx</code> for rolldown-vite (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/735">#735</a>)</h3>
<p><code>optimizeDeps.rollupOptions.jsx</code> is going to be deprecated in favor of <code>optimizeDeps.rollupOptions.transform.jsx</code>.</p>
<h2>4.0.0 (2025-08-07)</h2>
<h2>4.0.0-beta.0 (2025-07-28)</h2>
<h3>Require Node 20.19+, 22.12+</h3>
<p>This plugin now requires Node 20.19+ or 22.12+.</p>
<h2>3.11.0 (2025-07-18)</h2>
<h3>Add HMR support for compound components (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/518">#518</a>)</h3>
<p>HMR now works for compound components like this:</p>
<pre lang="tsx"><code>const Root = () => <div>Accordion Root</div>
const Item = () => <div>Accordion Item</div>
<p>export const Accordion = { Root, Item }
</code></pre></p>
<h3>Return <code>Plugin[]</code> instead of <code>PluginOption[]</code> (<a href="https://redirect.github.com/vitejs/vite-plugin-react/pull/537">#537</a>)</h3>
<p>The return type has changed from <code>react(): PluginOption[]</code> to more specialized type <code>react(): Plugin[]</code>. This allows for type-safe manipulation of plugins, for example:</p>
<pre lang="tsx"><code>// previously this causes type errors
react()
.map(p => ({ ...p, applyToEnvironment: e => e.name === 'client' }))
</code></pre>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/vitejs/vite-plugin-react/commits/[email protected]/packages/plugin-react-swc">compare view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
</details>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Bumps @vitejs/plugin-react-swc from 3.10.2 to 4.0.1.
Release notes
Sourced from
@vitejs/plugin-react-swc's releases.... (truncated)
Changelog
Sourced from
@vitejs/plugin-react-swc's changelog.Commits
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)