@@ -13,7 +13,11 @@ import type * as _compiler from 'vue/compiler-sfc'
13
13
import { version } from '../package.json'
14
14
import { resolveCompiler } from './compiler'
15
15
import { parseVueRequest } from './utils/query'
16
- import { getDescriptor , getSrcDescriptor } from './utils/descriptorCache'
16
+ import {
17
+ getDescriptor ,
18
+ getSrcDescriptor ,
19
+ getTempSrcDescriptor ,
20
+ } from './utils/descriptorCache'
17
21
import { getResolvedScript , typeDepToSFCMap } from './script'
18
22
import { transformMain } from './main'
19
23
import { handleHotUpdate , handleTypeDepChange } from './handleHotUpdate'
@@ -219,6 +223,7 @@ export default function vuePlugin(rawOptions: Options = {}): Plugin {
219
223
}
220
224
221
225
const { filename, query } = parseVueRequest ( id )
226
+
222
227
// select corresponding block for sub-part virtual modules
223
228
if ( query . vue ) {
224
229
if ( query . src ) {
@@ -248,9 +253,11 @@ export default function vuePlugin(rawOptions: Options = {}): Plugin {
248
253
transform ( code , id , opt ) {
249
254
const ssr = opt ?. ssr === true
250
255
const { filename, query } = parseVueRequest ( id )
256
+
251
257
if ( query . raw || query . url ) {
252
258
return
253
259
}
260
+
254
261
if ( ! filter ( filename ) && ! query . vue ) {
255
262
if (
256
263
! query . vue &&
@@ -278,7 +285,8 @@ export default function vuePlugin(rawOptions: Options = {}): Plugin {
278
285
} else {
279
286
// sub block request
280
287
const descriptor = query . src
281
- ? getSrcDescriptor ( filename , query ) !
288
+ ? getSrcDescriptor ( filename , query ) ||
289
+ getTempSrcDescriptor ( filename , query )
282
290
: getDescriptor ( filename , options ) !
283
291
284
292
if ( query . type === 'template' ) {
@@ -287,7 +295,7 @@ export default function vuePlugin(rawOptions: Options = {}): Plugin {
287
295
return transformStyle (
288
296
code ,
289
297
descriptor ,
290
- Number ( query . index ) ,
298
+ Number ( query . index || 0 ) ,
291
299
options ,
292
300
this ,
293
301
filename ,
0 commit comments