@@ -25,13 +25,18 @@ function normalizeResolvers(resolvers: (ComponentResolver | ComponentResolver[])
2525 return toArray ( resolvers ) . flat ( ) . map ( r => typeof r === 'function' ? { resolve : r , type : 'component' } : r )
2626}
2727
28+ function resolveGlobsExclude ( root : string , glob : string ) {
29+ const excludeReg = / ^ ! /
30+ return `${ excludeReg . test ( glob ) ? '!' : '' } ${ resolve ( root , glob . replace ( excludeReg , '' ) ) } `
31+ }
32+
2833export function resolveOptions ( options : Options , root : string ) : ResolvedOptions {
2934 const resolved = Object . assign ( { } , defaultOptions , options ) as ResolvedOptions
3035 resolved . resolvers = normalizeResolvers ( resolved . resolvers )
3136 resolved . extensions = toArray ( resolved . extensions )
3237
3338 if ( resolved . globs ) {
34- resolved . globs = toArray ( resolved . globs ) . map ( ( glob : string ) => slash ( resolve ( root , glob ) ) )
39+ resolved . globs = toArray ( resolved . globs ) . map ( ( glob : string ) => slash ( resolveGlobsExclude ( root , glob ) ) )
3540 resolved . resolvedDirs = [ ]
3641 }
3742 else {
@@ -40,7 +45,7 @@ export function resolveOptions(options: Options, root: string): ResolvedOptions
4045 : `{${ resolved . extensions . join ( ',' ) } }`
4146
4247 resolved . dirs = toArray ( resolved . dirs )
43- resolved . resolvedDirs = resolved . dirs . map ( i => slash ( resolve ( root , i ) ) )
48+ resolved . resolvedDirs = resolved . dirs . map ( i => slash ( resolveGlobsExclude ( root , i ) ) )
4449
4550 resolved . globs = resolved . resolvedDirs . map ( i => resolved . deep
4651 ? slash ( join ( i , `**/*.${ extsGlob } ` ) )
0 commit comments