@@ -60,6 +60,11 @@ data-testid` attributes. If your
6060 * to avoid any unexpected results.
6161 */
6262 buildReplacePatterns ?: ReplacePattern [ ] ;
63+
64+ /**
65+ * In case you face any errors, or you want to speed up build a bit, try disabling deduplication of require("react/jsx-runtime")
66+ */
67+ disableJSXRequireDedup ?: boolean ;
6368}
6469
6570function removeTests ( build : PluginBuild , options : React18PluginOptions ) {
@@ -154,7 +159,7 @@ function onEndCallBack(result: BuildResult, options: React18PluginOptions, write
154159 txt = txt . replace ( emptyChunkImportRegExp , "" ) ;
155160
156161 /** remove extra jsx-runtime imports */
157- if ( f . path . endsWith ( ".js" ) ) {
162+ if ( ! options . disableJSXRequireDedup && f . path . endsWith ( ".js" ) ) {
158163 const jsxMatches = txt . match ( jsxImportRegExp ) ;
159164 if ( jsxMatches !== null && jsxMatches . length > 1 ) {
160165 const importVarName = jsxMatches [ 0 ]
@@ -197,6 +202,8 @@ function onEndCallBack(result: BuildResult, options: React18PluginOptions, write
197202function setup ( build : PluginBuild , options : React18PluginOptions = { } ) {
198203 const write = build . initialOptions . write ;
199204 build . initialOptions . write = false ;
205+ // Avoid addiitonal computation when in watch mode or minification is not required
206+ if ( ! build . initialOptions . minify ) options . disableJSXRequireDedup = true ;
200207
201208 if ( ! options . keepTests ) removeTests ( build , options ) ;
202209
0 commit comments