5
5
var fs = require ( "fs" ) ;
6
6
var path = require ( "path" ) ;
7
7
8
+ function lessStrict ( regExpStr ) {
9
+ regExpStr = regExpStr
10
+ . replace ( / n o d e _ m o d u l e s / g, "(node_modules|~)" )
11
+ . replace ( / ( \\ \/ | \\ \\ ) / g, "[\\/\\\\]" )
12
+ return regExpStr ;
13
+ }
14
+
8
15
module . exports = function ( template , baseDir , stdout , prefix ) {
9
16
10
17
var regexp = new RegExp ( "\\{\\{" + ( prefix ? prefix + ":" : "" ) + "([^:\\}]+)\\}\\}" , "g" )
11
18
var cwd = process . cwd ( ) ;
12
- cwd = cwd . replace ( / [ - [ \] { } ( ) * + ? . , \\ ^ $ | # \s ] / g, "\\$&" ) ;
19
+ var webpack = path . join ( __dirname , ".." ) ;
20
+ var webpackParent = path . join ( __dirname , ".." , ".." ) ;
21
+ cwd = lessStrict ( cwd . replace ( / [ - [ \] { } ( ) * + ? . , \\ ^ $ | # \s ] / g, "\\$&" ) ) ;
13
22
cwd = new RegExp ( cwd , "g" ) ;
23
+ webpack = lessStrict ( webpack . replace ( / [ - [ \] { } ( ) * + ? . , \\ ^ $ | # \s ] / g, "\\$&" ) ) ;
24
+ webpack = new RegExp ( webpack , "g" ) ;
25
+ webpackParent = lessStrict ( webpackParent . replace ( / [ - [ \] { } ( ) * + ? . , \\ ^ $ | # \s ] / g, "\\$&" ) ) ;
26
+ console . log ( webpackParent ) ;
27
+ webpackParent = new RegExp ( webpackParent , "g" ) ;
14
28
15
29
return template . replace ( regexp , function ( match ) {
16
30
match = match . substr ( 2 + ( prefix ? prefix . length + 1 : 0 ) , match . length - 4 - ( prefix ? prefix . length + 1 : 0 ) ) ;
17
31
if ( match === "stdout" )
18
32
return stdout ;
19
33
return fs . readFileSync ( path . join ( baseDir , match ) , "utf-8" ) ;
20
- } ) . replace ( cwd , "." ) ;
34
+ } ) . replace ( cwd , "." ) . replace ( webpack , "(webpack)" ) . replace ( webpackParent , "(webpack)/~" ) ;
21
35
22
36
}
0 commit comments