@@ -17,7 +17,7 @@ function testJsx(filename: string | undefined | null) {
1717 return ! ! ( filename && / ( \. | \b ) [ j t ] s x $ / . test ( filename ) )
1818}
1919
20- async function transformTS ( src : string , isJSX ?: boolean ) {
20+ function transformTS ( src : string , isJSX ?: boolean ) {
2121 return transform ( src , {
2222 transforms : [ 'typescript' , ...( isJSX ? ( [ 'jsx' ] as Transform [ ] ) : [ ] ) ] ,
2323 jsxRuntime : 'preserve' ,
@@ -40,10 +40,12 @@ export async function compileFile(
4040 if ( REGEX_JS . test ( filename ) ) {
4141 const isJSX = testJsx ( filename )
4242 if ( testTs ( filename ) ) {
43- code = await transformTS ( code , isJSX )
43+ code = transformTS ( code , isJSX )
4444 }
4545 if ( isJSX ) {
46- code = await import ( './jsx' ) . then ( ( m ) => m . transformJSX ( code ) )
46+ code = await import ( './jsx' ) . then ( ( { transformJSX } ) =>
47+ transformJSX ( code ) ,
48+ )
4749 }
4850 compiled . js = compiled . ssr = code
4951 return [ ]
@@ -191,6 +193,12 @@ export async function compileFile(
191193 }
192194 }
193195
196+ if ( isJSX ) {
197+ const { transformJSX } = await import ( './jsx' )
198+ clientCode &&= transformJSX ( clientCode )
199+ ssrCode &&= transformJSX ( ssrCode )
200+ }
201+
194202 if ( hasScoped ) {
195203 appendSharedCode (
196204 `\n${ COMP_IDENTIFIER } .__scopeId = ${ JSON . stringify ( `data-v-${ id } ` ) } ` ,
@@ -297,9 +305,6 @@ async function doCompileScript(
297305 if ( isTS ) {
298306 code = await transformTS ( code , isJSX )
299307 }
300- if ( isJSX ) {
301- code = await import ( './jsx' ) . then ( ( m ) => m . transformJSX ( code ) )
302- }
303308 if ( compiledScript . bindings ) {
304309 code =
305310 `/* Analyzed bindings: ${ JSON . stringify (
@@ -364,9 +369,5 @@ async function doCompileTemplate(
364369 if ( isTS ) {
365370 code = await transformTS ( code , isJSX )
366371 }
367- if ( isJSX ) {
368- code = await import ( './jsx' ) . then ( ( m ) => m . transformJSX ( code ) )
369- }
370-
371372 return code
372373}
0 commit comments