@@ -25,16 +25,11 @@ export async function transformMain(
25
25
ssr : boolean ,
26
26
asCustomElement : boolean
27
27
) {
28
- const { root , devServer, isProduction } = options
28
+ const { devServer, isProduction } = options
29
29
30
30
// prev descriptor is only set and used for hmr
31
31
const prevDescriptor = getPrevDescriptor ( filename )
32
- const { descriptor, errors } = createDescriptor (
33
- filename ,
34
- code ,
35
- root ,
36
- isProduction
37
- )
32
+ const { descriptor, errors } = createDescriptor ( filename , code , options )
38
33
39
34
if ( errors . length ) {
40
35
errors . forEach ( ( error ) =>
@@ -167,8 +162,8 @@ export async function transformMain(
167
162
168
163
// if the template is inlined into the main module (indicated by the presence
169
164
// of templateMap, we need to concatenate the two source maps.
170
- let resolvedMap = map
171
- if ( map && templateMap ) {
165
+ let resolvedMap = options . sourceMap ? map : undefined
166
+ if ( resolvedMap && templateMap ) {
172
167
const generator = SourceMapGenerator . fromSourceMap (
173
168
new SourceMapConsumer ( map )
174
169
)
@@ -184,7 +179,7 @@ export async function transformMain(
184
179
}
185
180
} )
186
181
} )
187
- resolvedMap = ( generator as any ) . toJSON ( )
182
+ resolvedMap = ( generator as any ) . toJSON ( ) as RawSourceMap
188
183
// if this is a template only update, we will be reusing a cached version
189
184
// of the main module compile result, which has outdated sourcesContent.
190
185
resolvedMap . sourcesContent = templateMap . sourcesContent
@@ -195,13 +190,14 @@ export async function transformMain(
195
190
// handle TS transpilation
196
191
let resolvedCode = output . join ( '\n' )
197
192
if (
198
- descriptor . script ?. lang === 'ts' ||
199
- descriptor . scriptSetup ?. lang === 'ts'
193
+ ( descriptor . script ?. lang === 'ts' ||
194
+ descriptor . scriptSetup ?. lang === 'ts' ) &&
195
+ ! descriptor . script ?. src // only normal script can have src
200
196
) {
201
197
const { code, map } = await transformWithEsbuild (
202
198
resolvedCode ,
203
199
filename ,
204
- { loader : 'ts' } ,
200
+ { loader : 'ts' , sourcemap : options . sourceMap } ,
205
201
resolvedMap
206
202
)
207
203
resolvedCode = code
@@ -268,10 +264,7 @@ async function genScriptCode(
268
264
if ( script ) {
269
265
// If the script is js/ts and has no external src, it can be directly placed
270
266
// in the main module.
271
- if (
272
- ( ! script . lang || ( script . lang === 'ts' && options . devServer ) ) &&
273
- ! script . src
274
- ) {
267
+ if ( ( ! script . lang || script . lang === 'ts' ) && ! script . src ) {
275
268
scriptCode = rewriteDefault ( script . content , '_sfc_main' )
276
269
map = script . map
277
270
} else {
0 commit comments