1
1
import path from 'path' ;
2
2
3
3
import isGlob from 'is-glob' ;
4
+ import normalizePath from 'normalize-path' ;
4
5
5
- import escape from './utils/escape ' ;
6
+ import normalize from './utils/normalize ' ;
6
7
import isObject from './utils/isObject' ;
7
8
import { stat } from './utils/promisify' ;
8
9
@@ -41,6 +42,7 @@ export default function preProcessPattern(globalRef, pattern) {
41
42
pattern . context = path . join ( context , pattern . context ) ;
42
43
}
43
44
45
+ pattern . context = normalizePath ( pattern . context ) ;
44
46
pattern . ignore = globalRef . ignore . concat ( pattern . ignore || [ ] ) ;
45
47
46
48
info ( `processing from: '${ pattern . from } ' to: '${ pattern . to } '` ) ;
@@ -68,9 +70,11 @@ export default function preProcessPattern(globalRef, pattern) {
68
70
const globOptions = Object . assign ( { } , pattern . from ) ;
69
71
delete globOptions . glob ;
70
72
71
- pattern . glob = escape ( pattern . context , pattern . from . glob ) ;
73
+ pattern . glob = normalize ( pattern . context , pattern . from . glob ) ;
72
74
pattern . globOptions = globOptions ;
73
- pattern . absoluteFrom = path . resolve ( pattern . context , pattern . from . glob ) ;
75
+ pattern . absoluteFrom = normalizePath (
76
+ path . resolve ( pattern . context , pattern . from . glob )
77
+ ) ;
74
78
75
79
return Promise . resolve ( pattern ) ;
76
80
}
@@ -81,6 +85,9 @@ export default function preProcessPattern(globalRef, pattern) {
81
85
pattern . absoluteFrom = path . resolve ( pattern . context , pattern . from ) ;
82
86
}
83
87
88
+ // Normalize path when path separators are mixed (like `C:\\directory/nested-directory/`)
89
+ pattern . absoluteFrom = normalizePath ( pattern . absoluteFrom ) ;
90
+
84
91
debug (
85
92
`determined '${ pattern . from } ' to be read from '${ pattern . absoluteFrom } '`
86
93
) ;
@@ -89,7 +96,7 @@ export default function preProcessPattern(globalRef, pattern) {
89
96
// If from doesn't appear to be a glob, then log a warning
90
97
if ( isGlob ( pattern . from ) || pattern . from . indexOf ( '*' ) !== - 1 ) {
91
98
pattern . fromType = 'glob' ;
92
- pattern . glob = escape ( pattern . context , pattern . from ) ;
99
+ pattern . glob = normalize ( pattern . context , pattern . from ) ;
93
100
94
101
// We need to add context directory as dependencies to avoid problems when new files added in directories
95
102
// when we already in watch mode and this directories are not in context dependencies
@@ -130,7 +137,7 @@ export default function preProcessPattern(globalRef, pattern) {
130
137
131
138
pattern . fromType = 'dir' ;
132
139
pattern . context = pattern . absoluteFrom ;
133
- pattern . glob = escape ( pattern . absoluteFrom , '**/*' ) ;
140
+ pattern . glob = normalize ( pattern . absoluteFrom , '**/*' ) ;
134
141
pattern . absoluteFrom = path . join ( pattern . absoluteFrom , '**/*' ) ;
135
142
pattern . globOptions = {
136
143
dot : true ,
@@ -140,7 +147,7 @@ export default function preProcessPattern(globalRef, pattern) {
140
147
141
148
pattern . fromType = 'file' ;
142
149
pattern . context = path . dirname ( pattern . absoluteFrom ) ;
143
- pattern . glob = escape ( pattern . absoluteFrom ) ;
150
+ pattern . glob = normalize ( pattern . absoluteFrom ) ;
144
151
pattern . globOptions = {
145
152
dot : true ,
146
153
} ;
0 commit comments