forked from Sacret/githubify
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbrowserify.js
More file actions
89 lines (75 loc) · 2.1 KB
/
browserify.js
File metadata and controls
89 lines (75 loc) · 2.1 KB
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
// jshint node: true
'use strict';
var browserify = require('browserify');
var buffer = require('vinyl-buffer');
var gulp = require('gulp');
// var babel = require('gulp-babel');
var babelify = require('babelify');
var plumber = require('gulp-plumber');
var gutil = require('gulp-util');
// var reactify = require('reactify');
var rename = require('gulp-rename');
var source = require('vinyl-source-stream');
var uglify = require('gulp-uglify');
var watchify = require('watchify');
var config = require('../config').browserify;
var locations = require('../config').locations;
gulp.task('browserify', [], function() {
return browserifyTask({ watch: false, debug: true });
});
gulp.task('watchify', [], function() {
return browserifyTask({ watch: true, debug: true });
});
gulp.task('uglify', [], function() {
function uglifyTapIn(stream) {
return stream.pipe(uglify());
}
return browserifyTask({ watch: false, uglify: true });
});
// Browserify client-side scripts.
function browserifyTask(params) {
if (params == null) params = {};
if (params.watch == null) params.watch = false;
if (params.debug == null) params.debug = false;
if (params.uglify == null) params.uglify = false;
var b = browserify({
extensions: ['.js'],
debug: true //params.debug
});
// b.transform(reactify);
b.transform('babelify', {
presets: ['es2015', 'react']
});
config.files.map(function(file) {
b.add(file);
});
b.on('log', gutil.log);
function bundle() {
var stream = b.bundle()
.pipe(source(config.name))
.pipe(buffer());
if (params.debug === true) {
stream = stream.pipe(plumber(errorHandler))
}
// stream = stream.pipe(babel({
// presets: ['es2015', 'react']
// }));
if (params.uglify === true) {
stream = stream.pipe(uglify())
}
return stream
.pipe(gulp.dest(config.dest));
}
if (params.watch) {
b = watchify(b);
b.on('update', function() {
gutil.log('Watchify detected a change');
bundle();
});
}
return bundle();
}
function errorHandler (err) {
gutil.log(err.toString());
this.emit('end');
}