forked from UseAllFive/true-visibility
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
98 lines (81 loc) · 2.25 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
"use strict";
require("es6-promise").polyfill();
// =============================
// Vars
// =============================
var gulp = require( 'gulp' );
var del = require( 'del' );
var flatten = require( 'gulp-flatten' );
var jshint = require( 'gulp-jshint' );
var sourcemaps = require( 'gulp-sourcemaps' );
var uglify = require( 'gulp-uglify' );
var header = require( 'gulp-header' );
var rename = require( 'gulp-rename' );
var now = new Date();
var _package = require( './package.json' );
var license = '/*! true-visibility v' + _package.version +
' | (c) 2016-' + now.getUTCFullYear() +
' : MIT license - ' + _package.homepage + '/license.txt */\n';
// =============================
// Paths
// =============================
var paths = {
base: "./"
};
paths.src = paths.base + "src/";
paths.dist = paths.base + "dist/";
paths.jsSrc = paths.src + "*.js";
// =============================
// jsHint - error detection
// =============================
gulp.task("jshint", function ()
{
var jshGlobals = [
'$',
'jQuery',
'window',
'document',
'Element',
'Node',
'console',
'define',
'module'
];
gulp.src(paths.jsSrc)
.pipe(jshint({
predef: jshGlobals,
undef: true,
eqnull: true
}))
.pipe(jshint.reporter('jshint-stylish'))
.pipe(jshint.reporter('fail'));
});
// =============================
// Cleans
// =============================
gulp.task("clean:dist", function ()
{
return del([
paths.dist + "**/*"
]);
});
// =============================
// build - transform js and place in dist
// =============================
gulp.task( 'build:js', ['clean:dist', 'jshint'], function()
{
return gulp.src( paths.jsSrc, { base: "." })
.pipe( flatten() )
.pipe( sourcemaps.init() )
.pipe( uglify() )
.pipe( rename({
suffix: '.min'
}) )
.pipe( header( license ) )
.pipe( sourcemaps.write( "." ) )
.pipe( gulp.dest( paths.dist ) );
});
// =============================
// default
// =============================
gulp.task( 'default', ['build:js'] );