-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathgulpfile.js
More file actions
123 lines (112 loc) · 3.27 KB
/
Copy pathgulpfile.js
File metadata and controls
123 lines (112 loc) · 3.27 KB
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
const gulp = require('gulp');
const gulpLoadPlugins = require('gulp-load-plugins');
const browserSync = require('browser-sync').create(); // browser auto reload
const $ = gulpLoadPlugins();
gulp.task('default', ['css', 'js', 'views', 'module']);
gulp.task('browserSync', ['default'], () => {
browserSync.init({
notify: false,
port: 8000,
server: {
baseDir: 'dist',
},
});
});
gulp.task('watch', ['browserSync'], () => {
gulp.watch('src/sass/**/*.scss', ['css']);
gulp.watch('src/js/**/*.js', ['js']);
gulp.watch('src/views/**/*.pug', ['views']);
gulp.watch('src/module/**/*.scss', ['css-module']);
gulp.watch('src/module/**/*.js', ['js-module']);
gulp.watch('src/module/**/*.pug', ['view-module']);
});
gulp.task('min', ['css-min', 'js-min']);
gulp.task('css', () => {
gulp.src('src/sass/**/*.scss')
.pipe($.plumber())
.pipe($.sass.sync({
outputStyle: 'compressed', // expanded, nested, compact, compressed
precision: 10,
includePath: ['.'],
}).on('error', $.sass.logError))
.pipe($.autoprefixer({ browsers: ['last 2 versions'] }))
.pipe(gulp.dest('dist/css')) // output folder
.pipe(browserSync.stream())
// .pipe($.notify("Compile Sass Complete!"))
});
gulp.task('css-min', () => {
gulp.src('src/sass/**/*.scss')
.pipe($.plumber())
.pipe($.sass.sync({
outputStyle: 'compressed',
precision: 10,
includePath: ['.'],
}).on('error', $.sass.logError))
.pipe($.autoprefixer({ browsers: ['last 2 versions'] }))
.pipe($.rename({ suffix: '.min' }))
.pipe(gulp.dest('dist/css')) // output folder
.pipe($.notify({
message: 'Minify Sass Complete!',
onLast: true,
}))
});
gulp.task('js', () => {
gulp.src('src/js/**/*.js')
.pipe($.plumber())
.pipe($.babel())
.pipe(gulp.dest('dist/js')) // output folder
.pipe(browserSync.stream())
// .pipe($.notify("Compile Javascript Complete!"))
});
gulp.task('js-min', () => {
gulp.src('src/js/**/*.js')
.pipe($.plumber())
.pipe($.babel())
.pipe($.uglify()) // minify
.pipe($.rename({ suffix: '.min' }))
.pipe(gulp.dest('dist/js'))
.pipe($.notify({
message: 'Minify Javascript Complete!',
onLast: true,
}))
});
gulp.task('views', () => {
gulp.src('src/views/**/*.pug')
.pipe($.plumber())
.pipe($.pug({
pretty: true,
}))
.pipe(gulp.dest('dist')) // output folder
.pipe(browserSync.stream())
// .pipe($.notify("Compile Pug Complete!"))
});
gulp.task('module', ['css-module', 'js-module', 'view-module']);
// modules
gulp.task('css-module', () => {
gulp.src('src/module/**/*.scss')
.pipe($.plumber())
.pipe($.sass.sync({
outputStyle: 'compressed',
precision: 10,
includePath: ['.'],
}).on('error', $.sass.logError))
.pipe($.autoprefixer({ browsers: ['last 2 versions'] }))
.pipe(gulp.dest('dist/module'))
.pipe(browserSync.stream());
});
gulp.task('js-module', () => {
gulp.src('src/module/**/*.js')
.pipe($.plumber())
.pipe($.babel())
.pipe(gulp.dest('dist/module'))
.pipe(browserSync.stream());
});
gulp.task('view-module', () => {
gulp.src('src/module/**/*.pug')
.pipe($.plumber())
.pipe($.pug({
pretty: true,
}))
.pipe(gulp.dest('dist/module'))
.pipe(browserSync.stream());
});