-
Notifications
You must be signed in to change notification settings - Fork 2
/
gulpfile.js
92 lines (78 loc) · 1.85 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
"use strict";
var fs = require('fs'),
gulp = require('gulp'),
gutil = require('gulp-util'),
runSequence = require('run-sequence'),
browserify = require('browserify'),
eslint = require('gulp-eslint'),
source = require('vinyl-source-stream'),
browserSync = require('browser-sync');
// directories object
var dirs = {
root: '',
npm: 'node_modules/',
src: 'src/',
dist: 'dist/',
test: 'test/'
};
var printError = function(task, message) {
gutil.log(gutil.colors.white.bgRed.bold(task), gutil.colors.red(message));
gutil.beep();
};
var printSuccess = function(task, message) {
gutil.log(gutil.colors.white.bgGreen.bold(task), gutil.colors.green(message));
};
gulp.task('jslint', function() {
return gulp.src(dirs.src + '**/*.js')
.pipe(eslint({
extends: 'eslint:recommended',
parserOptions: {
ecmaVersion: 6,
sourceType: 'module',
ecmaFeatures: {
jsx: true
}
}
}))
.pipe(eslint.format());
});
gulp.task('browserify', function() {
var b = browserify({
debug: false,
standalone: 'Scrollo',
entries: dirs.src,
paths: [dirs.src],
extensions: ['.js']
});
b.transform('babelify', {
presets: ['es2015'],
plugins: ['add-module-exports']
});
b.plugin('browserify-derequire');
var bundle = function() {
return b.bundle()
.on('error', function(err) {
printError('browserify', err.message);
})
.pipe(source('scrollo.js'))
.pipe(gulp.dest(dirs.dist));
};
b.transform({
global: true,
sourcemap: false
}, 'uglifyify');
return bundle();
});
gulp.task('server', function() {
browserSync.init({
logLevel: 'info',
server: {
baseDir: dirs.test,
routes: {
"/dist": "dist"
}
}
});
});
gulp.task('default', ['browserify']);
gulp.task('test', ['server']);