@@ -15,7 +15,16 @@ import { createHash } from 'node:crypto'
15
15
import fs from 'node:fs'
16
16
import { dirname , parse as parsePath , resolve } from 'node:path'
17
17
import { 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'
19
28
import { getVueCompiler , parseVueRequest } from '../vue'
20
29
21
30
import type { CodeGenOptions , CodeGenResult } from '@intlify/bundle-utils'
@@ -169,12 +178,23 @@ export function resourcePlugin(opts: ResolvedOptions, meta: UnpluginContextMeta)
169
178
ctx . sourceMap = config . command === 'build' ? ! ! config . build . sourcemap : false
170
179
debug ( `configResolved: isProduction = ${ ctx . prod } , sourceMap = ${ ctx . sourceMap } ` )
171
180
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
+
172
188
// json transform handling
173
189
const jsonPlugin = getVitePlugin ( config , 'vite:json' )
174
190
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 ) {
178
198
if ( ! / \. j s o n $ / . test ( id ) || filter ( id ) ) {
179
199
return
180
200
}
@@ -196,6 +216,9 @@ export function resourcePlugin(opts: ResolvedOptions, meta: UnpluginContextMeta)
196
216
// @ts -expect-error
197
217
return orgTransform ! . apply ( this , [ code , id ] )
198
218
}
219
+
220
+ // override `vite:json` plugin transform function
221
+ overrideVitePluginTransform ( jsonPlugin , overrideViteJsonPlugin , transformWay ! )
199
222
}
200
223
}
201
224
} ,
0 commit comments