Skip to content

Commit

Permalink
use custom stream functions
Browse files Browse the repository at this point in the history
  • Loading branch information
yyx990803 committed Dec 29, 2013
1 parent c7f8a68 commit d8e3853
Showing 1 changed file with 53 additions and 19 deletions.
72 changes: 53 additions & 19 deletions tasks/build.js
Original file line number Diff line number Diff line change
@@ -1,36 +1,70 @@
var gulp = require('vinyl-fs'),
var fs = require('vinyl-fs'),
zlib = require('zlib'),
uglifyjs = require('uglify-js'),
component = require('gulp-component'),
rename = require('gulp-rename'),
uglify = require('gulp-uglify'),
header = require('gulp-header'),
gzip = require('gulp-gzip')
map = require('map-stream')

var dest = './dist'

var headerTemplate =
var dest = './dist',
headerText,
headerTemplate =
'/*\n' +
' VueJS v{{version}}\n' +
' (c) 2013 Evan You\n' +
' License: MIT\n' +
'*/'
'*/\n'

module.exports = function (grunt) {
grunt.registerTask('build', function (version) {

version = version || grunt.config.get('version')
var headerText = headerTemplate.replace(/{{version}}/, version)
gulp.src('./component.json')
headerText = headerTemplate.replace(/{{version}}/, version)

fs.src('./component.json')
.pipe(component.scripts({
standalone: 'Vue',
name: 'vue'
}))
.pipe(header(headerText))
.pipe(gulp.dest(dest))
.pipe(uglify())
.pipe(header(headerText))
.pipe(rename('vue.min.js'))
.pipe(gulp.dest(dest))
.pipe(gzip())
.pipe(gulp.dest(dest))
.pipe(map(header))
.pipe(fs.dest(dest))
.pipe(map(size))
.pipe(map(uglify))
.pipe(map(header))
.pipe(map(rename))
.pipe(fs.dest(dest))
.pipe(map(size))
.pipe(map(gzip))
.pipe(fs.dest(dest))
.pipe(map(size))
.on('end', this.async())

})
}

function rename (file, cb) {
file.path = file.base + 'vue.min.js'
cb(null, file)
}

function header (file, cb) {
file.contents = Buffer.concat([new Buffer(headerText), file.contents])
cb(null, file)
}

function uglify (file, cb) {
file.contents = new Buffer(uglifyjs.minify(file.contents.toString(), {
fromString: true
}).code)
cb(null, file)
}

function gzip (file, cb) {
zlib.gzip(file.contents, function (err, buf) {
file.contents = buf
cb(err, file)
})
}

function size (file, cb) {
console.log(file.relative + ': ' + (file.contents.length / 1024).toFixed(2) + 'kb')
cb(null, file)
}

0 comments on commit d8e3853

Please sign in to comment.