@@ -25,13 +25,18 @@ function normalizeResolvers(resolvers: (ComponentResolver | ComponentResolver[])
25
25
return toArray ( resolvers ) . flat ( ) . map ( r => typeof r === 'function' ? { resolve : r , type : 'component' } : r )
26
26
}
27
27
28
+ function resolveGlobsExclude ( root : string , glob : string ) {
29
+ const excludeReg = / ^ ! /
30
+ return `${ excludeReg . test ( glob ) ? '!' : '' } ${ resolve ( root , glob . replace ( excludeReg , '' ) ) } `
31
+ }
32
+
28
33
export function resolveOptions ( options : Options , root : string ) : ResolvedOptions {
29
34
const resolved = Object . assign ( { } , defaultOptions , options ) as ResolvedOptions
30
35
resolved . resolvers = normalizeResolvers ( resolved . resolvers )
31
36
resolved . extensions = toArray ( resolved . extensions )
32
37
33
38
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 ) ) )
35
40
resolved . resolvedDirs = [ ]
36
41
}
37
42
else {
@@ -40,7 +45,7 @@ export function resolveOptions(options: Options, root: string): ResolvedOptions
40
45
: `{${ resolved . extensions . join ( ',' ) } }`
41
46
42
47
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 ) ) )
44
49
45
50
resolved . globs = resolved . resolvedDirs . map ( i => resolved . deep
46
51
? slash ( join ( i , `**/*.${ extsGlob } ` ) )
0 commit comments