@@ -264,22 +264,42 @@ export async function transformMain(
264
264
/ t s x ? $ / . test ( lang ) &&
265
265
! descriptor . script ?. src // only normal script can have src
266
266
) {
267
- const { code, map } = await transformWithEsbuild (
268
- resolvedCode ,
269
- filename ,
270
- {
271
- target : 'esnext' ,
272
- charset : 'utf8' ,
273
- // #430 support decorators in .vue file
274
- // target can be overridden by esbuild config target
275
- ...options . devServer ?. config . esbuild ,
276
- loader : 'ts' ,
277
- sourcemap : options . sourceMap ,
278
- } ,
279
- resolvedMap ,
280
- )
281
- resolvedCode = code
282
- resolvedMap = resolvedMap ? ( map as any ) : resolvedMap
267
+ // @ts -ignore Rolldown-specific
268
+ const { transformWithOxc } = await import ( 'vite' )
269
+ if ( transformWithOxc ) {
270
+ const { code, map } = await transformWithOxc (
271
+ resolvedCode ,
272
+ filename ,
273
+ {
274
+ // #430 support decorators in .vue file
275
+ // target can be overridden by oxc config target
276
+ // @ts -ignore Rolldown-specific
277
+ ...options . devServer ?. config . oxc ,
278
+ lang : 'ts' ,
279
+ sourcemap : options . sourceMap ,
280
+ } ,
281
+ resolvedMap ,
282
+ )
283
+ resolvedCode = code
284
+ resolvedMap = resolvedMap ? ( map as any ) : resolvedMap
285
+ } else {
286
+ const { code, map } = await transformWithEsbuild (
287
+ resolvedCode ,
288
+ filename ,
289
+ {
290
+ target : 'esnext' ,
291
+ charset : 'utf8' ,
292
+ // #430 support decorators in .vue file
293
+ // target can be overridden by esbuild config target
294
+ ...options . devServer ?. config . esbuild ,
295
+ loader : 'ts' ,
296
+ sourcemap : options . sourceMap ,
297
+ } ,
298
+ resolvedMap ,
299
+ )
300
+ resolvedCode = code
301
+ resolvedMap = resolvedMap ? ( map as any ) : resolvedMap
302
+ }
283
303
}
284
304
285
305
return {
0 commit comments