From d3fe5b05cb91a04a1cc67ca48afc83ab9e91fb14 Mon Sep 17 00:00:00 2001 From: smeng9 <38666763+smeng9@users.noreply.github.com> Date: Fri, 26 Jun 2026 16:53:00 -0700 Subject: [PATCH 1/3] fix babel-plugin-react-compiler cannot be imported when used in a framework --- packages/plugin-react/src/reactCompilerPreset.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/plugin-react/src/reactCompilerPreset.ts b/packages/plugin-react/src/reactCompilerPreset.ts index 464e294d6..f75c2013f 100644 --- a/packages/plugin-react/src/reactCompilerPreset.ts +++ b/packages/plugin-react/src/reactCompilerPreset.ts @@ -2,15 +2,18 @@ import type { ReactCompilerBabelPluginOptions, RolldownBabelPreset, } from '#optionalTypes' +import { createRequire } from "module"; export const defaultCodeFilter = /forwardRef|memo|(?:const|let|var|function)\s+(?:[A-Z]|use[A-Z0-9])|(?:[A-Z]|use[A-Z0-9])[^\s:=(){}[\],;]*\s*(?:\(|[:=]\s*(?:function|\())/ +const require = createRequire(import.meta.url); + export const reactCompilerPreset = ( options: ReactCompilerBabelPluginOptions = {}, ): RolldownBabelPreset => ({ preset: () => ({ - plugins: [['babel-plugin-react-compiler', options]], + plugins: [[require.resolve('babel-plugin-react-compiler'), options]], }), rolldown: { filter: { From 8de2c54775f21ee18a552d58c7bd16e579ccfaed Mon Sep 17 00:00:00 2001 From: smeng9 <38666763+smeng9@users.noreply.github.com> Date: Fri, 26 Jun 2026 17:26:21 -0700 Subject: [PATCH 2/3] use node:module --- packages/plugin-react/src/reactCompilerPreset.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/plugin-react/src/reactCompilerPreset.ts b/packages/plugin-react/src/reactCompilerPreset.ts index f75c2013f..e5f93e7f7 100644 --- a/packages/plugin-react/src/reactCompilerPreset.ts +++ b/packages/plugin-react/src/reactCompilerPreset.ts @@ -2,7 +2,7 @@ import type { ReactCompilerBabelPluginOptions, RolldownBabelPreset, } from '#optionalTypes' -import { createRequire } from "module"; +import { createRequire } from 'node:module'; export const defaultCodeFilter = /forwardRef|memo|(?:const|let|var|function)\s+(?:[A-Z]|use[A-Z0-9])|(?:[A-Z]|use[A-Z0-9])[^\s:=(){}[\],;]*\s*(?:\(|[:=]\s*(?:function|\())/ From b72a0c3f83a0be25d5d514c03ab5dec33b6e754f Mon Sep 17 00:00:00 2001 From: Shaoyu Meng Date: Wed, 1 Jul 2026 09:07:24 -0700 Subject: [PATCH 3/3] refactor: use import.meta.resolve instead of createRequire Resolve babel-plugin-react-compiler via import.meta.resolve and convert the file URL to a path with fileURLToPath, dropping the createRequire boilerplate. Co-Authored-By: Claude Opus 4.8 (1M context) --- packages/plugin-react/src/reactCompilerPreset.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/plugin-react/src/reactCompilerPreset.ts b/packages/plugin-react/src/reactCompilerPreset.ts index e5f93e7f7..2e7dd97d5 100644 --- a/packages/plugin-react/src/reactCompilerPreset.ts +++ b/packages/plugin-react/src/reactCompilerPreset.ts @@ -1,19 +1,22 @@ +import { fileURLToPath } from 'node:url' import type { ReactCompilerBabelPluginOptions, RolldownBabelPreset, } from '#optionalTypes' -import { createRequire } from 'node:module'; export const defaultCodeFilter = /forwardRef|memo|(?:const|let|var|function)\s+(?:[A-Z]|use[A-Z0-9])|(?:[A-Z]|use[A-Z0-9])[^\s:=(){}[\],;]*\s*(?:\(|[:=]\s*(?:function|\())/ -const require = createRequire(import.meta.url); - export const reactCompilerPreset = ( options: ReactCompilerBabelPluginOptions = {}, ): RolldownBabelPreset => ({ preset: () => ({ - plugins: [[require.resolve('babel-plugin-react-compiler'), options]], + plugins: [ + [ + fileURLToPath(import.meta.resolve('babel-plugin-react-compiler')), + options, + ], + ], }), rolldown: { filter: {