Skip to content

plugin-react@4.0.0

Compare
Choose a tag to compare
@ArnaudBarre ArnaudBarre released this 20 Apr 14:27
· 74 commits to main since this release

Options changes

include/exclude

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:

export default defineConfig({
  plugins: [
    { enforce: 'pre', ...mdx() },
    react({ include: /\.(mdx|js|jsx|ts|tsx)$/ }),
  ],
})

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:

  • Cache plugin load (#141)
  • Wrap dynamic import to speedup analysis (#143)

Other notable changes

  • Silence "use client" warning (#144, fix #137)
  • Fast Refresh is applied on JS files using automatic runtime (#122, fix #83)
  • Vite 4.2 is required as a peer dependency (#128)
  • Avoid key collision in React refresh registration (a74dfef, fix #116)
  • Throw when refresh runtime is loaded twice (#108, fix #101)
  • Don't force optimization of jsx-runtime (#132)