@@ -2,18 +2,16 @@ import fs from 'fs-extra';
22import type { PluginItem , TransformOptions } from '@babel/core' ;
33import { resolve , isThereHaveBrowserslistConfig } from './utils/projectHelper' ;
44
5+ interface BabelConfigOptions {
6+ enabledReactCompiler ?: boolean ;
7+ }
8+
59interface BabelConfig extends TransformOptions {
610 cacheDirectory ?: boolean ;
711}
812
9- export default function getBabelCommonConfig ( modules ?: boolean ) : BabelConfig {
13+ function getBabelCommonConfig ( modules ?: boolean , options : BabelConfigOptions = { } ) : BabelConfig {
1014 const plugins : PluginItem [ ] = [
11- [
12- resolve ( 'babel-plugin-react-compiler' ) ,
13- {
14- target : '18' , // 最低支持的版本是 React 18
15- } ,
16- ] ,
1715 [
1816 resolve ( '@babel/plugin-transform-typescript' ) ,
1917 {
@@ -35,6 +33,14 @@ export default function getBabelCommonConfig(modules?: boolean): BabelConfig {
3533 resolve ( 'babel-plugin-transform-dev-warning' ) ,
3634 resolve ( '@babel/plugin-transform-private-methods' ) ,
3735 ] ;
36+ if ( options . enabledReactCompiler === true ) {
37+ plugins . unshift ( [
38+ resolve ( 'babel-plugin-react-compiler' ) ,
39+ {
40+ target : '18' , // 最低支持的版本是 React 18
41+ } ,
42+ ] ) ;
43+ }
3844 return {
3945 presets : [
4046 resolve ( '@babel/preset-react' ) ,
@@ -53,3 +59,5 @@ export default function getBabelCommonConfig(modules?: boolean): BabelConfig {
5359 plugins,
5460 } ;
5561}
62+
63+ export default getBabelCommonConfig ;
0 commit comments