@@ -25,16 +25,11 @@ export async function transformMain(
2525 ssr : boolean ,
2626 asCustomElement : boolean
2727) {
28- const { root , devServer, isProduction } = options
28+ const { devServer, isProduction } = options
2929
3030 // prev descriptor is only set and used for hmr
3131 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 )
3833
3934 if ( errors . length ) {
4035 errors . forEach ( ( error ) =>
@@ -167,8 +162,8 @@ export async function transformMain(
167162
168163 // if the template is inlined into the main module (indicated by the presence
169164 // 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 ) {
172167 const generator = SourceMapGenerator . fromSourceMap (
173168 new SourceMapConsumer ( map )
174169 )
@@ -184,7 +179,7 @@ export async function transformMain(
184179 }
185180 } )
186181 } )
187- resolvedMap = ( generator as any ) . toJSON ( )
182+ resolvedMap = ( generator as any ) . toJSON ( ) as RawSourceMap
188183 // if this is a template only update, we will be reusing a cached version
189184 // of the main module compile result, which has outdated sourcesContent.
190185 resolvedMap . sourcesContent = templateMap . sourcesContent
@@ -195,13 +190,14 @@ export async function transformMain(
195190 // handle TS transpilation
196191 let resolvedCode = output . join ( '\n' )
197192 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
200196 ) {
201197 const { code, map } = await transformWithEsbuild (
202198 resolvedCode ,
203199 filename ,
204- { loader : 'ts' } ,
200+ { loader : 'ts' , sourcemap : options . sourceMap } ,
205201 resolvedMap
206202 )
207203 resolvedCode = code
@@ -268,10 +264,7 @@ async function genScriptCode(
268264 if ( script ) {
269265 // If the script is js/ts and has no external src, it can be directly placed
270266 // 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 ) {
275268 scriptCode = rewriteDefault ( script . content , '_sfc_main' )
276269 map = script . map
277270 } else {
0 commit comments