1
1
var gulp = require ( 'gulp' ) ;
2
2
var replace = require ( 'gulp-replace' ) ;
3
3
var shell = require ( 'gulp-shell' ) ;
4
+ var rename = require ( 'gulp-rename' ) ;
5
+ var runseq = require ( 'run-sequence' ) ;
4
6
var del = require ( 'del' ) ;
5
7
var fs = require ( 'fs' ) ;
6
8
var path = require ( 'path' ) ;
@@ -13,7 +15,6 @@ function vulcanize(filename, dstdir, excludes) {
13
15
excludes . forEach ( function ( exclude ) {
14
16
cmd = cmd + ' --exclude ' + exclude ;
15
17
} ) ;
16
- cmd = cmd + ' --implicit-strip' ;
17
18
}
18
19
cmd = cmd + ' --strip-comments' ;
19
20
cmd = cmd + ' ' + filename + ' > ' + path . join ( dstdir , filename ) ;
@@ -30,7 +31,7 @@ gulp.task('mini', ['mkdir'], shell.task(vulcanize(mini, workdir, [micro])));
30
31
gulp . task ( 'max' , [ 'mkdir' ] , shell . task ( vulcanize ( max , workdir , [ mini , micro ] ) ) ) ;
31
32
32
33
gulp . task ( 'strip' , [ 'micro' , 'mini' , 'max' ] , function ( ) {
33
- return gulp . src ( [ 'dist/' + micro , 'dist/' + mini , 'dist/' + max ] )
34
+ return gulp . src ( [ 'dist/' + micro , 'dist/' + mini , 'dist/' + max ] )
34
35
. pipe ( polyclean . cleanJsComments ( ) )
35
36
// Collapse newlines
36
37
. pipe ( replace ( / \n \s * \n / g, '\n' ) )
@@ -40,16 +41,13 @@ gulp.task('strip', ['micro', 'mini', 'max'], function() {
40
41
. pipe ( replace ( '</head><body>\n</body></html>' , '' ) )
41
42
// Collapse leading spaces+tabs.
42
43
. pipe ( replace ( / ^ [ \t ] + / gm, '' ) )
43
- // Restore important newlines
44
- . pipe ( replace ( / ( - - > | < s c r i p t > ) / g, '$1\n' ) )
45
- . pipe ( replace ( / < \/ s c r i p t > / g, '\n$1' ) )
46
44
// put the out
47
45
. pipe ( gulp . dest ( 'dist' ) )
48
46
;
49
47
} ) ;
50
48
51
49
gulp . task ( 'clean' , function ( cb ) {
52
- del ( [ workdir + '/' + micro , workdir + '/' + mini , workdir + '/' + max ] , cb ) ;
50
+ del ( workdir , cb ) ;
53
51
} ) ;
54
52
55
53
gulp . task ( 'mkdir' , [ 'clean' ] , function ( cb ) {
@@ -60,3 +58,44 @@ gulp.task('mkdir', ['clean'], function(cb) {
60
58
61
59
// Default Task
62
60
gulp . task ( 'default' , [ 'strip' ] ) ;
61
+
62
+ // switch src and build for testing
63
+ gulp . task ( 'save-src' , function ( ) {
64
+ return gulp . src ( [ mini , micro , max ] )
65
+ . pipe ( rename ( function ( p ) {
66
+ p . extname += '.bak' ;
67
+ } ) )
68
+ . pipe ( gulp . dest ( '.' ) )
69
+ ;
70
+ } ) ;
71
+
72
+ gulp . task ( 'restore-src' , function ( ) {
73
+ return gulp . src ( [ mini + '.bak' , micro + '.bak' , max + '.bak' ] )
74
+ . pipe ( rename ( function ( p ) {
75
+ p . extname = '' ;
76
+ } ) )
77
+ . pipe ( gulp . dest ( '.' ) )
78
+ ;
79
+ } ) ;
80
+
81
+ gulp . task ( 'cleanup-switch' , function ( cb ) {
82
+ del ( [ mini + '.bak' , micro + '.bak' , max + '.bak' ] , cb ) ;
83
+ } ) ;
84
+
85
+ gulp . task ( 'switch-build' , function ( ) {
86
+ return gulp . src ( [ 'dist/' + mini , 'dist/' + micro , 'dist/' + max ] )
87
+ . pipe ( gulp . dest ( '.' ) ) ;
88
+ } ) ;
89
+
90
+ gulp . task ( 'restore-build' , function ( ) {
91
+ return gulp . src ( [ mini , micro , max ] )
92
+ . pipe ( gulp . dest ( 'dist' ) ) ;
93
+ } ) ;
94
+
95
+ gulp . task ( 'switch' , [ 'default' ] , function ( cb ) {
96
+ runseq ( 'save-src' , 'switch-build' , cb ) ;
97
+ } ) ;
98
+
99
+ gulp . task ( 'restore' , [ 'clean' ] , function ( cb ) {
100
+ runseq ( 'restore-build' , 'restore-src' , 'cleanup-switch' , cb ) ;
101
+ } ) ;
0 commit comments