/
gulpfile.js
executable file
·108 lines (89 loc) · 3.95 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
var gulp = require('gulp');
var plugins = require('gulp-load-plugins')();
var bower = require('./bower');
var urlbowerPath = bower.root.bowerPath,
srcPath = bower.root.srcPath,
urlAssets = bower.root.urlAssets,
urlViews = bower.root.urlViews;
function bowerPath(urls){
for (i = 0; i < urls.length; i++) {
urls[i] = urlbowerPath+"/"+urls[i];
}
return urls;
}
// -----------------------CSS ASSETS---------------------------
var bowercssVendorsFiles = bowerPath(bower.cssVendorsFiles);
bowercssVendorsFiles.push(srcPath+'/scss/vendors/tmp.css');
gulp.task('sass', function() {
gulp.src(srcPath+'/scss/app.scss')
.pipe(plugins.sass().on('error', plugins.sass.logError))
.pipe(plugins.autoprefixer({browsers: ['last 20 versions', 'ie >= 9']}))
.pipe(plugins.cleanCss({compatibility: 'ie8'}))
.pipe(plugins.base64({
baseDir: urlAssets+'/**',
extensions: ['svg','png','jpg'],
// maxImageSize: 8*1024,
// debug: true
}))
.pipe(plugins.rename('website.min.css'))
.pipe(gulp.dest(urlAssets+'/css'));
gulp.src(srcPath+'scss/vendors/bootstrap/app.scss')
.pipe(plugins.sass({
includePaths: urlbowerPath+'/bootstrap-sass/assets/stylesheets'
}).on('error', plugins.sass.logError))
.pipe(plugins.autoprefixer({browsers: ['last 20 versions', 'ie >= 9']}))
.pipe(plugins.cleanCss({compatibility: 'ie8'}))
.pipe(plugins.rename("tmp.css"))
.pipe(gulp.dest(srcPath+'scss/vendors'));
gulp.src(bowercssVendorsFiles)
.pipe(plugins.concat('vendors.min.css'))
.pipe(plugins.cleanCss({compatibility: 'ie8'}))
.pipe(gulp.dest(urlAssets+'/css'));
});
// -----------------------JS ASSETS---------------------------
var bowerjsVendorsFiles = bowerPath(bower.jsVendorsFiles);
bowerjsVendorsFiles.push(srcPath+'/scripts/vendors/tmp.js');
gulp.task('scripts', function() {
gulp.src([
srcPath+'/scripts/interface/**.js',
srcPath+'/scripts/**.js',
])
.pipe(plugins.concat('website.min.js'))
// .pipe(plugins.uglify({ mangle:false, compress:false, beautify:true }))
.pipe(gulp.dest(urlAssets+'/js'));
gulp.src(srcPath+'/scripts/vendors/vendors-rc.js')
.pipe(plugins.uglify({ mangle:false, compress:false, beautify:true }))
.pipe(plugins.rename("tmp.js"))
.pipe(gulp.dest(srcPath+'/scripts/vendors'));
gulp.src(bowerjsVendorsFiles)
.pipe(plugins.concat('vendors.min.js'))
.pipe(plugins.uglify({ mangle:false, compress:false, beautify:true }))
.pipe(gulp.dest(urlAssets+'/js'));
});
// -----------------------HTML MINIFY---------------------------
gulp.task('html', function() {
return gulp.src(srcPath+'/phtml/**/**.{phtml,html}')
.pipe(plugins.htmlmin({collapseWhitespace: true}))
// .pipe(plugins.img64())
.pipe(plugins.rename({suffix: '.min'}))
.pipe(gulp.dest(urlViews));
});
// -----------------------IMG OPTIMIZE---------------------------
gulp.task('images', function() {
return gulp.src(srcPath+'/images/**/**.{jpg,jpeg,png}')
.pipe(plugins.changed(urlAssets+'/img')) // Ignore unchanged files
.pipe(plugins.imagemin()) // Optimize
.pipe(gulp.dest(urlAssets+'/img'));
});
// -----------------------FONTS ASSETS---------------------------
gulp.task('icons', function() {
return gulp.src(bowerPath(bower.iconsFiles))
.pipe(gulp.dest(urlAssets+'/fonts'));
});
// -------------------------WATCHERS----------------------------
gulp.task('default', ['sass','icons','scripts', 'html', 'images'], function() {
gulp.watch([srcPath+'/scss/**/**.scss', '!'+srcPath+'/scss/**/tmp.css'], ['sass']);
gulp.watch([srcPath+'/scripts/**/**.js', '!'+srcPath+'/scripts/**/tmp.js'], ['scripts']);
gulp.watch([srcPath+'/phtml/**/**.{phtml,html}'], ['html']);
gulp.watch([srcPath+'/images/**/**.**'], ['images']);
});