@@ -15,7 +15,16 @@ import { createHash } from 'node:crypto'
1515import fs from 'node:fs'
1616import { dirname , parse as parsePath , resolve } from 'node:path'
1717import { parse } from 'vue/compiler-sfc'
18- import { checkVuePlugin , error , getVitePlugin , raiseError , resolveNamespace , warn } from '../utils'
18+ import {
19+ checkVuePlugin ,
20+ error ,
21+ getVitePlugin ,
22+ getVitePluginTransform ,
23+ overrideVitePluginTransform ,
24+ raiseError ,
25+ resolveNamespace ,
26+ warn
27+ } from '../utils'
1928import { getVueCompiler , parseVueRequest } from '../vue'
2029
2130import type { CodeGenOptions , CodeGenResult } from '@intlify/bundle-utils'
@@ -169,12 +178,23 @@ export function resourcePlugin(opts: ResolvedOptions, meta: UnpluginContextMeta)
169178 ctx . sourceMap = config . command === 'build' ? ! ! config . build . sourcemap : false
170179 debug ( `configResolved: isProduction = ${ ctx . prod } , sourceMap = ${ ctx . sourceMap } ` )
171180
181+ /**
182+ * NOTE:
183+ * For the native rolldown plugin, we need to change to another solution from the current workaround.
184+ * Currently, the rolldown team and vite team are discussing this issue.
185+ * https://github.com/vitejs/rolldown-vite/issues/120
186+ */
187+
172188 // json transform handling
173189 const jsonPlugin = getVitePlugin ( config , 'vite:json' )
174190 if ( jsonPlugin ) {
175- // backup @rollup /plugin-json
176- const orgTransform = jsonPlugin . transform
177- jsonPlugin . transform = async function ( code : string , id : string ) {
191+ // saving `vite:json` plugin instance
192+ const [ orgTransform , transformWay ] = getVitePluginTransform ( jsonPlugin )
193+ if ( ! orgTransform ) {
194+ throw new Error ( 'vite:json plugin not found!' )
195+ }
196+
197+ async function overrideViteJsonPlugin ( code : string , id : string ) {
178198 if ( ! / \. j s o n $ / . test ( id ) || filter ( id ) ) {
179199 return
180200 }
@@ -196,6 +216,9 @@ export function resourcePlugin(opts: ResolvedOptions, meta: UnpluginContextMeta)
196216 // @ts -expect-error
197217 return orgTransform ! . apply ( this , [ code , id ] )
198218 }
219+
220+ // override `vite:json` plugin transform function
221+ overrideVitePluginTransform ( jsonPlugin , overrideViteJsonPlugin , transformWay ! )
199222 }
200223 }
201224 } ,
0 commit comments