1 | var gulp = require('gulp')
|
2 | var clean = require('gulp-clean')
|
3 | var uglify = require('gulp-uglify')
|
4 | var rename = require('gulp-rename')
|
5 | var sourcemaps = require('gulp-sourcemaps')
|
6 | var browserify = require('browserify')
|
7 | var fs = require('fs')
|
8 |
|
9 | function standalone(name, entry, exportName) {
|
10 | return browserify(entry, { debug: true, standalone: exportName || name })
|
11 | .bundle()
|
12 | .pipe(fs.createWriteStream('./dist/'+ name.replace(/_/g, '-') +'.js'))
|
13 | }
|
14 |
|
15 | gulp.task('bundle:snabbdom', function() {
|
16 | return standalone('snabbdom_patch', './snabbdom.bundle.js', 'snabbdom')
|
17 | })
|
18 |
|
19 | gulp.task('bundle:snabbdom:init', function() {
|
20 | return standalone('snabbdom', './snabbdom.js')
|
21 | })
|
22 |
|
23 | gulp.task('bundle:snabbdom:h', function() {
|
24 | return standalone('h', './h.js')
|
25 | })
|
26 |
|
27 | gulp.task('bundle:module:class', function() {
|
28 | return standalone('snabbdom_class', './modules/class.js')
|
29 | })
|
30 |
|
31 | gulp.task('bundle:module:props', function() {
|
32 | return standalone('snabbdom_props', './modules/props.js')
|
33 | })
|
34 |
|
35 | gulp.task('bundle:module:attributes', function() {
|
36 | return standalone('snabbdom_attributes', './modules/attributes.js')
|
37 | })
|
38 |
|
39 | gulp.task('bundle:module:style', function() {
|
40 | return standalone('snabbdom_style', './modules/style.js')
|
41 | })
|
42 |
|
43 | gulp.task('bundle:module:eventlisteners', function() {
|
44 | return standalone('snabbdom_eventlisteners', './modules/eventlisteners.js')
|
45 | })
|
46 |
|
47 | gulp.task('bundle', [
|
48 | 'bundle:snabbdom',
|
49 | 'bundle:snabbdom:init',
|
50 | 'bundle:snabbdom:h',
|
51 | 'bundle:module:attributes',
|
52 | 'bundle:module:class',
|
53 | 'bundle:module:props',
|
54 | 'bundle:module:style',
|
55 | 'bundle:module:eventlisteners'
|
56 | ])
|
57 |
|
58 | gulp.task('compress', ['bundle'], function() {
|
59 | return gulp.src(['dist/*.js', '!dist/*.min.js'])
|
60 | .pipe(sourcemaps.init())
|
61 | .pipe(uglify())
|
62 | .pipe(rename({ suffix: '.min' }))
|
63 | .pipe(sourcemaps.write('.'))
|
64 | .pipe(gulp.dest('dist'))
|
65 | })
|
66 |
|
67 | gulp.task('clean', function() {
|
68 | return gulp.src('dist/*.*', {read: false})
|
69 | .pipe(clean())
|
70 | })
|
71 |
|
72 | gulp.task('default', ['bundle'])
|