Skip to content

Releases: vitejs/vite-plugin-react

v4.2.1

04 Dec 17:53
Compare
Choose a tag to compare

Remove generic parameter on Plugin to avoid type error with Rollup 4/Vite 5 and skipLibCheck: false.

I expect very few people to currently use this feature, but if you are extending the React plugin via api object, you can get back the typing of the hook by importing ViteReactPluginApi:

import type { Plugin } from 'vite'
import type { ViteReactPluginApi } from '@vitejs/plugin-react'

export const somePlugin: Plugin = {
  name: 'some-plugin',
  api: {
    reactBabel: (babelConfig) => {
      babelConfig.plugins.push('some-babel-plugin')
    },
  } satisfies ViteReactPluginApi,
}

v4.2.0

16 Nov 13:31
Compare
Choose a tag to compare

Update peer dependency range to target Vite 5

There were no breaking change that impacted this plugin, so any combination of React plugins and Vite core version will work.

Align jsx runtime for optimized dependencies

This will only affect people using internal libraries that contains untranspiled JSX. This change aligns the optimizer with the source code and avoid issues when the published source don't have React in the scope.

Reminder: While being partially supported in Vite, publishing TS & JSX outside of internal libraries is highly discouraged.

v4.1.1

02 Nov 08:16
Compare
Choose a tag to compare
  • Enable retainLines to get correct line numbers for jsxDev (fix #235)

v4.1.0

24 Sep 18:44
Compare
Choose a tag to compare
  • Add @types/babel__cores to dependencies (fix #211)
  • Improve build perf when not using Babel plugins by lazy loading @babel/core #212
  • Better invalidation message when an export is added & fix HMR for export of nullish values #215
  • Include non-dev jsx runtime in optimizeDeps & support HMR for JS files using the non dev runtime #224
  • The build output now contains a index.d.cts file so you don't get types errors when setting moduleResolution to node16 or nodenext in your tsconfig (we recommend using bundler which is more close to how Vite works)

v4.0.4

31 Jul 16:32
Compare
Choose a tag to compare
  • Fix #198: Enable Babel if presets list is not empty

v4.0.3

10 Jul 04:35
Compare
Choose a tag to compare
  • Revert #108: Remove throw when refresh runtime is loaded twice to enable usage in micro frontend apps. This was added to help fix setup usage, and this is not worth an annoying warning for others or a config parameter.

v4.0.2

06 Jul 10:17
Compare
Choose a tag to compare
  • Fix fast-refresh for files that are transformed into jsx (#188)

plugin-react@4.0.1

19 Jun 23:18
Compare
Choose a tag to compare

plugin-react@4.0.0

20 Apr 14:27
Compare
Choose a tag to compare

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)

plugin-react@4.0.0-beta.1

17 Apr 22:01
Compare
Choose a tag to compare
Pre-release

fix: add jsx dev runtime to optimizeDeps (#147)