Releases: vitejs/vite-plugin-react
[email protected]
- Enable retainLines to get correct line numbers for jsxDev (fix #235)
[email protected]
- Add
@types/babel__coresto 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.ctsfile so you don't get types errors when settingmoduleResolutiontonode16ornodenextin your tsconfig (we recommend usingbundlerwhich is more close to how Vite works)
[email protected]
- Fix #198: Enable Babel if presets list is not empty
[email protected]
- 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.
[email protected]
- Fix fast-refresh for files that are transformed into jsx (#188)
[email protected]
- Support Vitest deps.experimentalOptimizer
- Support using components inside web workers (#181)
[email protected]
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 toesbuild.jsxSideEffects.
Perf
This release goes in hand with the upcoming Vite 4.3 release focusing on performances:
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)
[email protected]
fix: add jsx dev runtime to optimizeDeps (#147)
[email protected]
This major version include a revamp of options:
include/excludenow 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.mdxfiles. 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.
fastRefreshis removed (#122). This should be correctly activated by plugin without configuration.jsxPureis removed. This is a niche use case that was just passing down the boolean to esbuild.jsxSideEffects. (#129)jsxRuntimeis unchanged but deprecated (#131) and will be removed in the next major.
This release goes in hand with the upcoming Vite 4.3 release focusing on performances:
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)
[email protected]
This release improved the Fast Refresh integration and fixes a lot of HMR issues with HOC, class component & styled component (#79)