File tree Expand file tree Collapse file tree 1 file changed +21
-0
lines changed
packages/vite/src/node/plugins Expand file tree Collapse file tree 1 file changed +21
-0
lines changed Original file line number Diff line number Diff line change 11import { transform } from 'esbuild'
2+ import { TraceMap , decodedMap , encodedMap } from '@jridgewell/trace-mapping'
23import type { ResolvedConfig } from '../config'
34import type { Plugin } from '../plugin'
45import { escapeRegex } from '../utils'
@@ -200,6 +201,26 @@ export async function replaceDefine(
200201 : true ,
201202 } )
202203
204+ // remove esbuild's <define:...> source entries
205+ // since they would confuse source map remapping/collapsing which expects a single source
206+ if ( result . map . includes ( '<define:' ) ) {
207+ const originalMap = new TraceMap ( result . map )
208+ if ( originalMap . sources . length >= 2 ) {
209+ const sourceIndex = originalMap . sources . indexOf ( id )
210+ const decoded = decodedMap ( originalMap )
211+ decoded . sources = [ id ]
212+ decoded . mappings = decoded . mappings . map ( ( segments ) =>
213+ segments . filter ( ( segment ) => {
214+ // modify and filter
215+ const index = segment [ 1 ]
216+ segment [ 1 ] = 0
217+ return index === sourceIndex
218+ } ) ,
219+ )
220+ result . map = JSON . stringify ( encodedMap ( new TraceMap ( decoded as any ) ) )
221+ }
222+ }
223+
203224 return {
204225 code : result . code ,
205226 map : result . map || null ,
You can’t perform that action at this time.
0 commit comments