1 | var gulp = require('gulp');
|
2 | var $ = require('gulp-load-plugins')();
|
3 |
|
4 | gulp.task('default', ['test']);
|
5 |
|
6 | gulp.task('test', function(cb) {
|
7 | var spawn = require('child_process').spawn;
|
8 | var child = spawn('node_modules/.bin/lab', ['-v', '-t', 94], {stdio: 'inherit'});
|
9 | child.on('exit', function(code) {
|
10 | cb(code ? new Error('Tests Failed') : null);
|
11 | });
|
12 | });
|
13 |
|
14 | gulp.task('build', ['browser', 'vm']);
|
15 |
|
16 | gulp.task('browser', function() {
|
17 | var vars = [], varsMap = {};
|
18 |
|
19 | var replacePrivate = function(name) {
|
20 | var map = varsMap[name];
|
21 | if (!map) {
|
22 | vars.push(name);
|
23 | map = '._' + vars.length.toString(32);
|
24 | varsMap[name] = map;
|
25 |
|
26 | }
|
27 |
|
28 | return map;
|
29 | };
|
30 |
|
31 | gulp.src('lib/slm_browser.js')
|
32 | .pipe($.webpack({
|
33 | output: {
|
34 | filename: 'slm-browser.js',
|
35 | library: 'Slm',
|
36 | libraryTarget: 'umd'
|
37 | }
|
38 | }))
|
39 | .pipe($.size({showFiles: true}))
|
40 | .pipe(gulp.dest('dist'))
|
41 | .pipe($.replace( /\._(\w+)/g, replacePrivate))
|
42 | .pipe($.uglify())
|
43 | .pipe($.concat('slm-browser.min.js'))
|
44 | .pipe($.size({showFiles: true}))
|
45 | .pipe(gulp.dest('dist'))
|
46 | .pipe($.gzip())
|
47 | .pipe($.size({showFiles: true}))
|
48 | .pipe(gulp.dest('dist'));
|
49 | });
|
50 |
|
51 | gulp.task('vm', function() {
|
52 | var vars = [];
|
53 | var varsMap = {};
|
54 |
|
55 | var replacePrivate = function(name) {
|
56 | var map = varsMap[name];
|
57 | if (!map) {
|
58 | vars.push(name);
|
59 | map = varsMap[name] = '._' + vars.length.toString(32);
|
60 | }
|
61 |
|
62 | return map;
|
63 | };
|
64 |
|
65 | gulp.src('lib/vm_browser.js')
|
66 | .pipe($.webpack({
|
67 | output: {
|
68 | filename: 'slm-vm-browser.js',
|
69 | library: 'SlmVM',
|
70 | libraryTarget: 'umd'
|
71 | }
|
72 | }))
|
73 | .pipe($.size({showFiles: true}))
|
74 | .pipe(gulp.dest('dist'))
|
75 | .pipe($.replace( /\._(\w+)/g, replacePrivate))
|
76 | .pipe($.uglify())
|
77 | .pipe($.concat('slm-vm-browser.min.js'))
|
78 | .pipe($.size({showFiles: true}))
|
79 | .pipe(gulp.dest('dist'))
|
80 | .pipe($.gzip())
|
81 | .pipe($.size({showFiles: true}))
|
82 | .pipe(gulp.dest('dist'));
|
83 | });
|