/
gulpfile.js
98 lines (92 loc) · 2.79 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
// Require
var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var sass = require('gulp-sass');
var miniCss = require('gulp-minify-css');
var autoprefixer = require('gulp-autoprefixer');
var runSync = require('run-sequence');
// Paths
var path = {
'resources': {
'cssFront': './resources/assets/css/front/',
'cssBack': './resources/assets/css/back/',
'jsFront': './resources/assets/js/front/',
'jsBack': './resources/assets/js/back/'
},
'public': {
'css': './public/assets/css/',
'js': './public/assets/js/'
}
};
/* Assets Back */
// Sass
gulp.task('sassBack', function(){
return gulp.src(path.resources.cssBack+'*.+(scss|sass)')
.pipe(sass().on('error', sass.logError))
.pipe(gulp.dest(path.resources.cssBack));
});
// CSS
gulp.task('cssBack', function(){
return gulp.src(path.resources.cssBack+'*.css')
.pipe(autoprefixer(['> 0.2%']))
.pipe(miniCss())
.pipe(concat('back.min.css'))
.pipe(gulp.dest(path.public.css));
});
// JS
gulp.task('jsBack', function(){
return gulp.src(path.resources.jsBack+'*.js')
.pipe(uglify())
.pipe(concat('back.min.js'))
.pipe(gulp.dest(path.public.js));
});
/* Assets Front */
// Sass
gulp.task('sassFront', function(){
return gulp.src(path.resources.cssFront+'*.+(scss|sass)')
.pipe(sass().on('error', sass.logError))
.pipe(gulp.dest(path.resources.cssFront));
});
// CSS
gulp.task('cssFront', function(){
return gulp.src(path.resources.cssFront+'*.css')
.pipe(autoprefixer(['> 0.2%']))
.pipe(miniCss())
.pipe(concat('front.min.css'))
.pipe(gulp.dest(path.public.css));
});
// JS
gulp.task('jsFront', function(){
return gulp.src(path.resources.jsFront+'*.js')
.pipe(uglify())
.pipe(concat('front.min.js'))
.pipe(gulp.dest(path.public.js));
});
// Watch
gulp.task('back-watch', function(){
gulp.watch(path.resources.jsBack+'/*.js', ['jsBack']);
gulp.watch(path.resources.cssBack+'/**/*.+(scss|sass|css)', function(){
runSync('sassBack', 'cssBack');
});
});
gulp.task('front-watch', function(){
gulp.watch(path.resources.jsFront+'/*.js', ['jsFront']);
gulp.watch(path.resources.cssFront+'/**/*.+(scss|sass|css)', function(){
runSync('sassFront', 'cssFront');
});
});
gulp.task('watch', function(){
gulp.watch(path.resources.jsBack+'/*.js', ['jsBack']);
gulp.watch(path.resources.cssBack+'/**/*.+(scss|sass|css)', function(){
runSync('sassBack', 'cssBack');
});
gulp.watch(path.resources.jsFront+'/*.js', ['jsFront']);
gulp.watch(path.resources.cssFront+'/**/*.+(scss|sass|css)', function(){
runSync('sassFront', 'cssFront');
});
});
// Build
gulp.task('build', function(){
runSync(['sassFront', 'sassBack'], ['jsFront', 'jsBack', 'cssFront', 'cssBack']);
});