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 1
1
import { transform } from 'esbuild'
2
+ import { TraceMap , decodedMap , encodedMap } from '@jridgewell/trace-mapping'
2
3
import type { ResolvedConfig } from '../config'
3
4
import type { Plugin } from '../plugin'
4
5
import { escapeRegex } from '../utils'
@@ -200,6 +201,26 @@ export async function replaceDefine(
200
201
: true ,
201
202
} )
202
203
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
+
203
224
return {
204
225
code : result . code ,
205
226
map : result . map || null ,
You can’t perform that action at this time.
0 commit comments