-
Notifications
You must be signed in to change notification settings - Fork 1
/
gulpfile.js
107 lines (92 loc) · 3.22 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
// For more information on how to configure a task runner, please visit:
// https://github.com/gulpjs/gulp
var gulp = require('gulp');
var gutil = require('gulp-util');
var gulpif = require('gulp-if');
var clean = require('gulp-clean');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var jshint = require('gulp-jshint');
var uglify = require('gulp-uglifyjs');
var sass = require('gulp-sass');
var csso = require('gulp-csso');
var es = require('event-stream');
var http = require('http');
var browserify = require('gulp-browserify');
var sprite = require('css-sprite').stream;
gulp.task('clean', function () {
// Clear the destination folder
gulp.src('dist/**/*.*', { read: false })
.pipe(clean({ force: true }));
});
gulp.task('copy-html', function () {
return gulp.src('./src/**/*.html', { base: './src' })
.pipe(gulp.dest('./dist'));
});
gulp.task('copy', ['copy-html'], function () {
// Copy all application files except *.less and .js into the `dist` folder
return es.concat(
gulp.src(['src/scss/fontello/**'])
.pipe(gulp.dest('dist/css/fontello')),
gulp.src(['src/scss/opensans/**'])
.pipe(gulp.dest('dist/css/opensans')),
gulp.src(['src/img/**'])
.pipe(gulp.dest('dist/img')),
gulp.src(['src/js/vendor/**'])
.pipe(gulp.dest('dist/js/vendor')),
gulp.src(['src/*.*', 'src/CNAME'])
.pipe(gulp.dest('dist'))
);
});
gulp.task('scripts', function () {
return es.concat(
// Detect errors and potential problems in your JavaScript code
// You can enable or disable default JSHint options in the .jshintrc file
gulp.src(['src/js/**/*.js', '!src/js/vendor/**'])
.pipe(jshint('.jshintrc'))
.pipe(jshint.reporter(require('jshint-stylish'))),
// Concatenate, minify and copy all JavaScript (except vendor scripts)
gulp.src('src/js/app.js')
.pipe(browserify({
insertGlobals: true,
debug: false // true
}))
.pipe(uglify({
outSourceMap: true,
basePath: '/js/'
}))
.pipe(gulp.dest('./dist/js')) // pipe it to the output DIR
);
});
gulp.task('sprites', function () {
return gulp.src('./src/img/communities/gray/*.png')
.pipe(sprite({
name: 'communities.png',
style: '_sprite.scss',
cssPath: '/img/communities/',
processor: 'scss',
prefix: 'community',
retina: true
}))
.pipe(gulpif('*.png', gulp.dest('./src/img/communities/')))
.pipe(gulpif('*.scss', gulp.dest('./src/scss/')));
});
gulp.task('styles', function () {
return gulp.src('src/scss/app.scss')
.pipe(sass())
.pipe(rename('app.css'))
.pipe(csso())
.pipe(gulp.dest('dist/css'))
});
gulp.task('watch', function () {
// Watch .js files and run tasks if they change
gulp.watch('src/js/**/*.js', ['scripts']);
// Watch .less files and run tasks if they change
gulp.watch('src/scss/**/*.scss', ['styles']);
// Watch .html files
gulp.watch('./src/**/*.html', ['copy-html']);
});
// The dist task (used to store all files that will go to the server)
gulp.task('dist', ['clean', 'copy', 'scripts', 'sprites', 'styles']);
// The default task (called when you run `gulp`)
gulp.task('default', ['dist', 'watch']);