-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
114 lines (100 loc) · 2.83 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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
const gulp = require('gulp'); // npm install --save-dev gulp
const imagemin = require('gulp-imagemin'); // npm install --save-dev gulp-imagemin
const uglify = require('gulp-uglify'); // npm install --save-dev gulp-uglify
const sass = require('gulp-sass'); // npm install --save-dev gulp-sass
const concat = require('gulp-concat') // npm install --save-dev gulp-concat
const rename = require('gulp-rename') // npm install --save-dev gulp-rename
const babel = require('gulp-babel');
/*
-- TOP LEVEL FUNCTION --
gulp.task - Define tasks
gulp.src - Point tofiles to use
fulp.dest - Points to folder to output
gulp.watch - Watch files and folders for changes
*/
// folder of JavaScript Destintion
const destJs = 'DikanNetProject/Scripts/MyJs';
// Logs Message
function message(done){
console.log('Gulp is running...');
done();
}
// Error log
function errorLog(error){
console.log(error.toString());
this.emit('end');
done();
}
// Copy All HTML files
function copyHtml(done){
gulp.src('src/*.html')
.pipe(gulp.dest('dist'));
done();
}
// Optimize Images
function imageMin(done){
gulp.src('DikanNetProject/src/pic/*')
.pipe(imagemin())
.on('error',errorLog)
.pipe(gulp.dest('DikanNetProject/Content/Pic'));
done();
}
// Minify JS
function minifyJs(done)
{
gulp.src('DikanNetProject/src/js/*.js')
.pipe(uglify())
.pipe(rename({
suffix: '.min'
}))
.pipe(gulp.dest(destJs));
done();
}
// CopyOrginal JS
function copyJs(done)
{
gulp.src('DikanNetProject/src/js/*.js')
.pipe(gulp.dest(destJs));
done();
}
// Concat scripts
function combainJs(done)
{
gulp.src('DikanNetProject/src/js/*.js')
.pipe(concat('main.js'))
.pipe(uglify())
.pipe(gulp.dest(destJs));
done();
}
//From ES6 to regular js
function convertES6(done) {
gulp.src('DikanNetProject/src/js/ES6/*.js')
.pipe(babel())
.pipe(gulp.dest('DikanNetProject/src/js/'));
done();
}
// Compile sass
function sassToCss(done){
gulp.src('DikanNetProject/src/sass/*.scss')
.pipe(sass().on('error',errorLog))
.pipe(gulp.dest('DikanNetProject/Content/Css'));
done();
}
// Watch files
function watch_files() {
gulp.watch('DikanNetProject/src/sass/*.scss',sassToCss );
// gulp.watch('DikanNetProject/src/js/ES6/*.js' ,convertES6 );
gulp.watch('DikanNetProject/src/js/*.js' ,minifyJs );
gulp.watch('DikanNetProject/src/js/*.js' ,copyJs );
gulp.watch('DikanNetProject/src/pic/*' ,imageMin );
}
gulp.task('message', message);
gulp.task('copyHtml',copyHtml);
gulp.task('imageMin',imageMin);
gulp.task('minifyJs',minifyJs);
gulp.task('copyJs',copyJs);
gulp.task('sassToCss',sassToCss);
gulp.task('combainJs',combainJs);
// gulp.task('convertES6',convertES6);
gulp.task('default', gulp.parallel(message,imageMin,copyJs,minifyJs,sassToCss) );
gulp.task('watch',gulp.series(watch_files));