-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
100 lines (95 loc) · 2.3 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
var gulp= require('gulp');
var sass= require('gulp-sass');
var coffee= require('gulp-coffee');
var concat= require('gulp-concat');
var uglify= require('gulp-uglify');
var rename= require('gulp-rename');
var pug= require('gulp-pug');
var autoprefixer= require('gulp-autoprefixer');
var sourcemaps= require('gulp-sourcemaps');
var gutil= require('gulp-util');
var yargs= require('yargs');
var gulpif= require('gulp-if');
// setting
var inputJs= './src/coffee/**/*.coffee';
var outJs= './';
var inputScss= './src/scss/*.scss';
var inputPug= './src/pug/**/*.pug';
var outputPug= './';
var outCss= './rd/css/';
var autoprefixerOpt= {
browsers: ['last 2 versions']
};
var sassOptDev= {
errLogToConsole: true,
outputStyle: 'extended',
sourceComments: true
};
var sassOptProd= {
errLogToConsole: true,
outputStyle: 'compress',
sourceComments: false
};
var pugOptionsDev= {
debug: true,
pretty: true,
};
var pugOptionsProd= {
debug: false,
pretty: false
};
gulp.task('coffee', function () {
return gulp
.src(inputJs)
.pipe(coffee({
base: true
}).on('error', gutil.log))
.pipe(gulp.dest(outJs))
// .pipe(function (a, b, c) {
// console.log(a, b);
// });
});
gulp.task('js', function () {
return gulp
.src(outJs+ '**/*.js')
.pipe(sourcemaps.init())
.pipe(uglify())
.pipe(sourcemaps.write(outJs+ '/maps/'))
.pipe(rename(function (path) {
path.extname= ".min.js";
}))
.pipe(gulp.dest(outJs));
});
gulp.task('sass', function () {
return gulp
.src(inputScss)
.pipe(sass(sassOpt).on('error', gutil.log))
})
gulp.task('watch-js', function () {
return gulp
.watch(
inputJs,
['coffee', 'js'] //
).on('change', function (event) {
console.log(event.path);
});
});
gulp.task('pug', function () {
if (yargs.argv.mode) {
if (yargs.argv.mode==='dev') {
pugOptions= pugOptionsDev;
} else if (yargs.argv.mode==='prod') {
pugOptions= pugOptionsProd;
} else {
console.error('unknow mode, avaliable mode is dev for development and prod for production');
}
}
else
console.log('please specify mode, ex --mode dev|prod');
return gulp.src(inputPug)
.pipe(pug(pugOptions))
.pipe(gulp.dest(outputPug));
})
gulp.task('dev', []);
gulp.task('production', []);
gulp.task('default', ['watch-js']);