Skip to content

Commit d8e3853

Browse files
committed
use custom stream functions
1 parent c7f8a68 commit d8e3853

File tree

1 file changed

+53
-19
lines changed

1 file changed

+53
-19
lines changed

tasks/build.js

Lines changed: 53 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,70 @@
1-
var gulp = require('vinyl-fs'),
1+
var fs = require('vinyl-fs'),
2+
zlib = require('zlib'),
3+
uglifyjs = require('uglify-js'),
24
component = require('gulp-component'),
3-
rename = require('gulp-rename'),
4-
uglify = require('gulp-uglify'),
5-
header = require('gulp-header'),
6-
gzip = require('gulp-gzip')
5+
map = require('map-stream')
76

8-
var dest = './dist'
9-
10-
var headerTemplate =
7+
var dest = './dist',
8+
headerText,
9+
headerTemplate =
1110
'/*\n' +
1211
' VueJS v{{version}}\n' +
1312
' (c) 2013 Evan You\n' +
1413
' License: MIT\n' +
15-
'*/'
14+
'*/\n'
1615

1716
module.exports = function (grunt) {
1817
grunt.registerTask('build', function (version) {
18+
1919
version = version || grunt.config.get('version')
20-
var headerText = headerTemplate.replace(/{{version}}/, version)
21-
gulp.src('./component.json')
20+
headerText = headerTemplate.replace(/{{version}}/, version)
21+
22+
fs.src('./component.json')
2223
.pipe(component.scripts({
2324
standalone: 'Vue',
2425
name: 'vue'
2526
}))
26-
.pipe(header(headerText))
27-
.pipe(gulp.dest(dest))
28-
.pipe(uglify())
29-
.pipe(header(headerText))
30-
.pipe(rename('vue.min.js'))
31-
.pipe(gulp.dest(dest))
32-
.pipe(gzip())
33-
.pipe(gulp.dest(dest))
27+
.pipe(map(header))
28+
.pipe(fs.dest(dest))
29+
.pipe(map(size))
30+
.pipe(map(uglify))
31+
.pipe(map(header))
32+
.pipe(map(rename))
33+
.pipe(fs.dest(dest))
34+
.pipe(map(size))
35+
.pipe(map(gzip))
36+
.pipe(fs.dest(dest))
37+
.pipe(map(size))
3438
.on('end', this.async())
39+
40+
})
41+
}
42+
43+
function rename (file, cb) {
44+
file.path = file.base + 'vue.min.js'
45+
cb(null, file)
46+
}
47+
48+
function header (file, cb) {
49+
file.contents = Buffer.concat([new Buffer(headerText), file.contents])
50+
cb(null, file)
51+
}
52+
53+
function uglify (file, cb) {
54+
file.contents = new Buffer(uglifyjs.minify(file.contents.toString(), {
55+
fromString: true
56+
}).code)
57+
cb(null, file)
58+
}
59+
60+
function gzip (file, cb) {
61+
zlib.gzip(file.contents, function (err, buf) {
62+
file.contents = buf
63+
cb(err, file)
3564
})
65+
}
66+
67+
function size (file, cb) {
68+
console.log(file.relative + ': ' + (file.contents.length / 1024).toFixed(2) + 'kb')
69+
cb(null, file)
3670
}

0 commit comments

Comments
 (0)