UNPKG

@vitejs/plugin-react

Version:
68 lines (65 loc) 2.31 kB
import { TransformOptions, ParserOptions } from '@babel/core'; import { PluginOption, ResolvedConfig } from 'vite'; interface Options { include?: string | RegExp | Array<string | RegExp>; exclude?: string | RegExp | Array<string | RegExp>; /** * Control where the JSX factory is imported from. * https://esbuild.github.io/api/#jsx-import-source * @default 'react' */ jsxImportSource?: string; /** * Note: Skipping React import with classic runtime is not supported from v4 * @default "automatic" */ jsxRuntime?: 'classic' | 'automatic'; /** * Babel configuration applied in both dev and prod. */ babel?: BabelOptions | ((id: string, options: { ssr?: boolean; }) => BabelOptions); /** * React Fast Refresh runtime URL prefix. * Useful in a module federation context to enable HMR by specifying * the host application URL in the Vite config of a remote application. * @example * reactRefreshHost: 'http://localhost:3000' */ reactRefreshHost?: string; /** * If set, disables the recommendation to use `@vitejs/plugin-react-oxc` */ disableOxcRecommendation?: boolean; } type BabelOptions = Omit<TransformOptions, 'ast' | 'filename' | 'root' | 'sourceFileName' | 'sourceMaps' | 'inputSourceMap'>; /** * The object type used by the `options` passed to plugins with * an `api.reactBabel` method. */ interface ReactBabelOptions extends BabelOptions { plugins: Extract<BabelOptions['plugins'], any[]>; presets: Extract<BabelOptions['presets'], any[]>; overrides: Extract<BabelOptions['overrides'], any[]>; parserOpts: ParserOptions & { plugins: Extract<ParserOptions['plugins'], any[]>; }; } type ReactBabelHook = (babelConfig: ReactBabelOptions, context: ReactBabelHookContext, config: ResolvedConfig) => void; type ReactBabelHookContext = { ssr: boolean; id: string; }; type ViteReactPluginApi = { /** * Manipulate the Babel options of `@vitejs/plugin-react` */ reactBabel?: ReactBabelHook; }; declare function viteReact(opts?: Options): PluginOption[]; declare namespace viteReact { var preambleCode: string; } export = viteReact; export type { BabelOptions, Options, ReactBabelOptions, ViteReactPluginApi };