UNPKG

1.98 kBJavaScriptView Raw
1var gulp = require('gulp');
2var $ = require('gulp-load-plugins')();
3
4gulp.task('default', ['test']);
5
6gulp.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
14gulp.task('build', ['browser', 'vm']);
15
16gulp.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 // console.log(vars.length, map, name);
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
51gulp.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});