-
Notifications
You must be signed in to change notification settings - Fork 107
/
gulpfile.js
117 lines (101 loc) · 2.41 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
115
116
117
/**
*
* jQuery hover3d
*
* @since 1.0.0
* @authors @ariona_rian
* @url http://ariona.github.io/hover3d
*
*/
// Project initialization
var project = "hover3d",
build = "./dist/",
buildInclude = [
// Common file types
'**/*.html',
'**/*.css',
'**/*.js',
'**/*.svg',
'**/*.ttf',
'**/*.otf',
'**/*.eot',
'**/*.woff',
'**/*.woff2',
'**/*.jpg',
'**/*.png',
'**/*.po',
'**/*.mo',
// Exluded files and folders
'!**/*.gitignore',
'!.editorconfig',
'!.csscomb.json',
'!.README.md',
'!node_modules/**/*',
'!source/**/*',
'!source/sass/.sass-cache/**/*',
'!gulpfile.js',
'!package.json',
'!dist/**/*'
]
// Init all Plugins
var gulp = require( "gulp" ),
// CSS Related Plugins
sass = require( "gulp-sass" ),
autoprefixer = require( "gulp-autoprefixer" ),
// Javascript Related Plugins
jshint = require( "gulp-jshint" ),
uglifyjs = require( "gulp-uglify" ),
// Tools & Helpers
browserSync = require( "browser-sync" ).create(),
rename = require( "gulp-rename" );
/**
* CSS
* ===============================
* Compiling Sass files, autoprefix it, prettify with CSSComb
* and create minified file
**/
gulp.task( 'css', function(){
return gulp.src( 'source/sass/*.scss' )
.pipe( sass().on('error',sass.logError))
.on('error', function(){ this.emit( 'end' ) })
.pipe( autoprefixer({browsers: "last 4 version"}) )
.pipe( gulp.dest(".") )
.pipe( browserSync.stream() );
});
/**
* JS Custom
* =====================================
* Running JSHint for all custom script
* Create minified version of script
**/
gulp.task( 'js', function(){
return gulp.src( "source/js/*.js" )
.pipe( jshint({
'undef': true,
'unused': true,
'browser': true,
'devel': true,
'predef': ["jQuery", "$"]
}))
.pipe( gulp.dest( 'dist/js/' ) )
.pipe( rename({ suffix: '.min' }) )
.pipe( uglifyjs() )
.pipe( gulp.dest("dist/js/") )
});
/**
* Watch
* ===============================
* Default task for watching and start developing
* This will work for wordpress theme development
* with support of browsersync
**/
gulp.task( 'default', function(){
files = ["./**/*.html","./**/*.js"];
browserSync.init(files,{
server:{
baseDir: ".",
}
});
gulp.watch( "./source/sass/**/*.scss", ["css"] );
gulp.watch( "./source/js/**/*.js", ["js"], browserSync.reload )
});