@@ -13,23 +13,29 @@ export const handleResolve = async ({
1313 config : Config
1414 isServer : boolean
1515} ) : Promise < void > => {
16- // aliases
17- config . resolve . alias
18- . set ( '@source' , app . dir . source ( ) )
19- . set ( '@temp' , app . dir . temp ( ) )
20- . set ( '@internal' , app . dir . temp ( 'internal' ) )
16+ const alias = {
17+ '@source' : app . dir . source ( ) ,
18+ '@temp' : app . dir . temp ( ) ,
19+ '@internal' : app . dir . temp ( 'internal' ) ,
20+ }
2121
22- // extensions
23- config . merge ( {
24- resolve : {
25- extensionAlias : {
26- '.js' : [ '.js' , '.ts' ] ,
27- '.mjs' : [ '.mjs' , '.mts' ] ,
28- } ,
29- extensions : [ '.js' , '.jsx' , '.ts' , '.tsx' , '.vue' , '.json' ] ,
30- } ,
22+ // plugin hook: alias
23+ const aliasResult = await app . pluginApi . hooks . alias . process ( app , isServer )
24+
25+ aliasResult . forEach ( ( aliasObject ) => {
26+ Object . assign ( alias , aliasObject )
3127 } )
3228
29+ // set aliases
30+ config . resolve . alias . batch ( ( aliasConfig ) =>
31+ Object . assign (
32+ aliasConfig ,
33+ Object . fromEntries (
34+ Object . entries ( alias ) . sort ( ( a , b ) => b . length - a . length ) ,
35+ ) ,
36+ ) ,
37+ )
38+
3339 // extensions
3440 config . resolve . extensions . merge ( [
3541 '.js' ,
@@ -40,13 +46,11 @@ export const handleResolve = async ({
4046 '.json' ,
4147 ] )
4248
43- // plugin hook: alias
44- const aliasResult = await app . pluginApi . hooks . alias . process ( app , isServer )
45-
46- // set aliases
47- aliasResult . forEach ( ( aliasObject ) => {
48- Object . entries ( aliasObject ) . forEach ( ( [ key , value ] ) => {
49- config . resolve . alias . set ( key , value )
50- } )
49+ // extensionAlias
50+ config . resolve . merge ( {
51+ extensionAlias : {
52+ '.js' : [ '.js' , '.ts' ] ,
53+ '.mjs' : [ '.mjs' , '.mts' ] ,
54+ } ,
5155 } )
5256}
0 commit comments