@@ -724,12 +724,13 @@ export default class Project {
724
724
return _
725
725
} )
726
726
}
727
- if ( this . isDev && url . startsWith ( 'https://esm.sh/' ) ) {
727
+ if ( url . startsWith ( 'https://esm.sh/' ) ) {
728
728
const u = new URL ( dlUrl )
729
- if ( ! u . searchParams . has ( 'dev' ) ) {
730
- u . searchParams . set ( 'env' , 'development' )
729
+ u . searchParams . set ( 'target' , this . config . buildTarget )
730
+ if ( this . isDev && ! u . searchParams . has ( 'dev' ) ) {
731
+ u . searchParams . set ( 'dev' , '' )
731
732
}
732
- dlUrl = u . toString ( )
733
+ dlUrl = u . toString ( ) . replace ( / = ( & | $ ) / , '$1' )
733
734
}
734
735
if ( mod . sourceHash === '' ) {
735
736
log . info ( 'Download' , url , dlUrl != url ? colors . dim ( `• ${ dlUrl } ` ) : '' )
@@ -1078,8 +1079,9 @@ function renameImportUrl(importUrl: string): string {
1078
1079
const url = new URL ( isRemote ? importUrl : 'file://' + path . resolve ( '/' , importUrl ) )
1079
1080
const ext = path . extname ( path . basename ( url . pathname ) ) || '.js'
1080
1081
let pathname = util . trimSuffix ( url . pathname , ext )
1081
- if ( url . search ) {
1082
- pathname += '@' + btoa ( url . search ) . replace ( / \/ / g, '_' ) . replace ( / = / g, '' )
1082
+ let search = Array . from ( url . searchParams . entries ( ) ) . map ( ( [ key , value ] ) => value ? `${ key } =${ value } ` : key )
1083
+ if ( search . length > 0 ) {
1084
+ pathname += '@' + search . join ( ',' )
1083
1085
}
1084
1086
if ( isRemote ) {
1085
1087
return '/-/' + url . hostname + ( url . port ? '/' + url . port : '' ) + pathname + ext
0 commit comments