Skip to content

Commit a5996e8

Browse files
committed
Add option to disableJSXRequireDedup
In case you face any errors, or you want to speed up build a bit, try disabling deduplication of require("react/jsx-runtime")
1 parent 1d82ce4 commit a5996e8

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

lib/src/index.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

6570
function 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
197202
function 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

Comments
 (0)