-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathgulpfile.js
103 lines (89 loc) · 2.82 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
'use strict';
var gulp = require('gulp'),
babel = require('gulp-babel'),
browserify = require('browserify'),
babelify = require("babelify"),
source = require('vinyl-source-stream'),
exorcist = require('exorcist'),
uglifyify = require('uglifyify'),
jshint = require("gulp-jshint"),
gulpsass = require('gulp-sass'),
sketch = require("gulp-sketch"),
iconfont = require('gulp-iconfont'),
bourbon = require('node-bourbon').includePaths,
deploypages = require('gulp-gh-pages'),
webpack = require('gulp-webpack');
var dest = './dest',
fontName = 'appfont';
gulp.task("webpack", function() {
var config = require('./webpack.config.js');
return gulp.src('src/index.js')
.pipe(webpack(config))
.pipe(gulp.dest(dest+'/assets/js/'));
});
gulp.task("webpack-watch", function() {
var config = require('./webpack.config.js');
config.watch = true;
return gulp.src('src/index.js')
.pipe(webpack(config))
.pipe(gulp.dest(dest+'/assets/js/'));
});
gulp.task('styles', function() {
return gulp.src([
'./src/assets/scss/app.scss'
])
.pipe(gulpsass({
outputStyle: 'expanded',
includePaths: [
'./src/assets/scss'
].concat(bourbon),
errLogToConsole: true
}))
.pipe(gulp.dest(dest + '/assets/css'));
});
gulp.task('iconfont', function() {
return gulp.src('./src/assets/icons/symbol-font-16px.sketch') // you can also choose 'symbol-font-16px.sketch'
.pipe(sketch({
export: 'artboards',
formats: 'svg'
}))
.pipe(iconfont({
fontName: fontName,
appendCodepoints: true,
descent: 80
}))
.pipe(gulp.dest(dest + '/assets/fonts'))
});
gulp.task('html', function() {
return gulp.src(['./src/**', '!./src/assets/**'])
.pipe(gulp.dest(dest));
});
gulp.task('img', function() {
return gulp.src(['./src/assets/img/**'])
.pipe(gulp.dest(dest+ '/assets/img'));
});
gulp.task("prelint", function() {
return gulp.src('./src/assets/js/apps/**')
.pipe(babel({
stage: 1
}))
.pipe(gulp.dest('./tmp/src'));
});
gulp.task('lint', ['prelint'], function() {
return gulp.src('./tmp/src/**')
.pipe(jshint())
.pipe(jshint.reporter("default", {
verbose: true
}))
.pipe(jshint.reporter("fail"));
});
gulp.task('deploypages', function() {
return gulp.src('./dest/**/*')
.pipe(deploypages());
});
gulp.task('watch', function() {
gulp.watch('./src/assets/scss/**', ['styles']);
gulp.watch('./src/assets/icons/**', ['iconfont']);
gulp.watch(['./src/**', '!./src/assets/**'], ['html']);
});
gulp.task('default', ['lint', 'styles', 'html', /* 'img', */ 'watch', 'webpack-watch']);