-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
122 lines (106 loc) · 4.14 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
118
119
120
121
122
var gulp = require('gulp'),
less = require('gulp-less'), // less compiler
mainBowerFiles = require('main-bower-files'),
//gulpFilter = require('gulp-filter'),
//addsrc = require('gulp-add-src'),
//debug = require('gulp-debug'),
print = require('gulp-print'),
sourcemaps = require('gulp-sourcemaps'),
path = require('path'),
//underscore = require('underscore'),
uglify = require('gulp-uglify'), // uglifies the js
plumber = require('gulp-plumber'), // disable interuption
minifycss = require('gulp-minify-css'), // minify the css files
concat = require('gulp-concat'), // concatinate js
autoprefixer = require('gulp-autoprefixer'); // sets missing browserprefixes
var targets = {
less: [
'less/theme/*.less',
'less/color-switcher.less'
], // all less files
cssDest: 'css', // css output folder
fontsDest: 'css/fonts', // fonts output folder
styles:[
'bower_components/vegas/dist/jquery.vegas.css',
'bower_components/pace/themes/pace-theme-big-counter.css'
],
scripts:[
'bower_components/jquery-waypoints/shortcuts/sticky-elements/waypoints-sticky.js',
'bower_components/mixitup/src/jquery.mixitup.js',
'bower_components/Blur.js/blur.js',
'bower_components/modernizr/modernizr.js',
'src/script.js',
'src/color-switcher.js'
],
jsDest: 'js', // JS folder
};
gulp.task('bowerfiles', function () {
gulp
.src(mainBowerFiles())
.pipe(print());
});
/* copy fonts from bower components to production */
gulp.task('bowerfonts-copy', function () {
var fontsRegEx = (/(.*\.otf$)|(.*\.eot$)|(.*\.svg$)|(.*\.ttf$)|(.*\.woff$)/i);
gulp
.src(mainBowerFiles({filter: fontsRegEx}))
.pipe(gulp.dest(targets.fontsDest));
});
/* compile themes */
gulp.task('less', function () {
gulp.src(targets.less)
.pipe(sourcemaps.init({loadMaps: true, sourceRoot: '/'}))
.pipe(less({
paths: [path.join(__dirname, 'bower_components/**/*.less', 'less/style.less', 'less/includes/*.less')],
sourceMap: true
}))
.pipe(print())
.pipe(autoprefixer( // complete css with correct vendor prefixes
'last 10 version',
'> 1%',
'ie 8',
'ie 9',
'ios 6',
'android 4'
))
/*.pipe(minifycss())*/
.pipe(sourcemaps.write('../maps'))
.pipe(gulp.dest(targets.cssDest));
});
/* compile bower and custom scripts to one file */
gulp.task('js', function () {
var jsRegEx = (/.*\.js$/i),
src=mainBowerFiles({filter: jsRegEx});
src=src.concat(targets.scripts);
//console.log(src);
gulp.src(src)
.pipe(sourcemaps.init())
.pipe(uglify()) // uglify the files
.pipe(print())
.pipe(concat('scripts.min.js')) // concatinate to one file
//.pipe(gulp.dest(target.js_dest)) // where to put the files
.pipe(sourcemaps.write('../maps'))
.pipe(gulp.dest(targets.jsDest));
});
/* copy bower and custom scripts to one folder */
gulp.task('js-prod', function () {
var jsRegEx = (/.*\.js$/i),
src=mainBowerFiles({filter: jsRegEx});
src=src.concat(targets.scripts);
gulp.src(src)
.pipe(gulp.dest(targets.jsDest));
});
/* copy bower and custom css to one folder */
gulp.task('css-prod', function () {
var jsRegEx = (/.*\.css$/i),
src=mainBowerFiles({filter: jsRegEx});
src=src.concat(targets.styles);
gulp.src(src)
.pipe(gulp.dest(targets.cssDest+'/lib'));
});
/* auto recompile */
gulp.task('watch', function(){
gulp.watch(targets.less.concat(['bower_components/**/*.less', 'less/style.less', 'less/includes/*.less']), ['less']);
// gulp.watch(targets.scripts, ['js']);
// gulp.watch('bower_components/**/*', ['js','less','bowerfonts-copy']);
});