1 | var gulp = require('gulp');
|
2 | var path = require('path');
|
3 | var browserify = require('browserify');
|
4 | var babel = require('gulp-babel');
|
5 | var derequire = require('gulp-derequire');
|
6 | var insert = require('gulp-insert');
|
7 | var rename = require('gulp-rename');
|
8 | var source = require('vinyl-source-stream');
|
9 | var uglify = require('gulp-uglify');
|
10 | var convertNewline = require('gulp-convert-newline');
|
11 |
|
12 | var BUILD = 'browser';
|
13 | var DIST = './';
|
14 | var VERSION = require('./package.json').version;
|
15 |
|
16 | var FULL_HEADER = (
|
17 | '/**\n' +
|
18 | ' * SocketCluster JavaScript client v' + VERSION + '\n' +
|
19 | ' */\n');
|
20 |
|
21 | gulp.task('browserify', function (done) {
|
22 | var stream = browserify({
|
23 | builtins: ['_process', 'events', 'buffer', 'querystring'],
|
24 | entries: 'index.js',
|
25 | standalone: 'socketCluster'
|
26 | })
|
27 | .ignore('_process')
|
28 | .bundle();
|
29 | return stream.pipe(source('socketcluster.js'))
|
30 | .pipe(convertNewline({
|
31 | newline: 'lf',
|
32 | encoding: 'utf8'
|
33 | }))
|
34 | .pipe(insert.prepend(FULL_HEADER))
|
35 | .pipe(derequire())
|
36 | .pipe(gulp.dest(DIST));
|
37 | });
|
38 |
|
39 | gulp.task('minify', function () {
|
40 | return gulp.src(DIST + 'socketcluster.js')
|
41 | .pipe(babel({
|
42 | comments: false
|
43 | }))
|
44 | .pipe(babel({
|
45 | plugins: ['minify-dead-code-elimination']
|
46 | }))
|
47 | .pipe(uglify())
|
48 | .pipe(insert.prepend(FULL_HEADER))
|
49 | .pipe(rename({
|
50 | extname: '.min.js'
|
51 | }))
|
52 | .pipe(gulp.dest(DIST));
|
53 | });
|