Skip to content

Commit

Permalink
test using gulp plugins instead
Browse files Browse the repository at this point in the history
  • Loading branch information
yyx990803 committed Dec 29, 2013
1 parent d280f50 commit c7f8a68
Show file tree
Hide file tree
Showing 9 changed files with 97 additions and 116 deletions.
14 changes: 13 additions & 1 deletion .jshintrc
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,18 @@
"node": true,
"laxbreak": true,
"globals": {
"console": true
"console": true,
"it": true,
"describe": true,
"before": true,
"after": true,
"assert": true,
"mock": true,
"Vue": true,
"$": true,
"mockHTMLEvent": true,
"mockMouseEvent": true,
"mockKeyEvent": true,
"casper": true
}
}
59 changes: 9 additions & 50 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,16 @@ module.exports = function( grunt ) {

version: grunt.file.readJSON('package.json').version,

componentbuild: {
build: {
options: {
name: 'vue',
standalone: 'Vue'
},
src: '.',
dest: 'dist'
},
test: {
options: {
name: 'vue.test'
},
src: '.',
dest: 'test'
}
},

jshint: {
options: {
reporter: require('jshint-stylish'),
jshintrc: true
},
dev: {
src: ['src/**/*.js']
src: 'src/**/*.js'
},
test: {
src: ['test/unit/specs/*.js', 'test/functional/specs/*.js']
src: 'test/*/specs/*.js'
}
},

Expand All @@ -45,65 +27,42 @@ module.exports = function( grunt ) {
}
},

uglify: {
build: {
options: {
compress: true,
mangle: true
},
files: {
'dist/vue.min.js': 'dist/vue.js'
}
}
},

watch: {
options: {
nospawn: true
},
dev: {
files: ['src/**/*.js', './component.json'],
tasks: ['componentbuild', 'jsc']
tasks: ['dev', 'instrument']
}
}

})

// load npm tasks
require('load-grunt-tasks')(grunt)
grunt.loadNpmTasks('grunt-mocha')
grunt.loadNpmTasks('grunt-contrib-watch')
grunt.loadNpmTasks('grunt-contrib-jshint')

// load custom tasks
grunt.file.recurse('tasks', function (path) {
require('./' + path)(grunt)
})

grunt.registerTask( 'dist', [
'uglify',
'banner',
'size'
])

grunt.registerTask( 'build', [
'componentbuild:build',
'dist'
])

grunt.registerTask( 'unit', [
'componentbuild:test',
'jsc',
'instrument',
'mocha'
])

grunt.registerTask( 'test', [
'unit',
'componentbuild:build',
'casper'
])

grunt.registerTask( 'default', [
'jshint',
'build',
'test',
'dist'
'size'
])

}
29 changes: 0 additions & 29 deletions tasks/banner.js

This file was deleted.

36 changes: 36 additions & 0 deletions tasks/build.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
var gulp = require('vinyl-fs'),
component = require('gulp-component'),
rename = require('gulp-rename'),
uglify = require('gulp-uglify'),
header = require('gulp-header'),
gzip = require('gulp-gzip')

var dest = './dist'

var headerTemplate =
'/*\n' +
' VueJS v{{version}}\n' +
' (c) 2013 Evan You\n' +
' License: MIT\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')
.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))
.on('end', this.async())
})
}
14 changes: 14 additions & 0 deletions tasks/dev.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
var gulp = require('vinyl-fs'),
component = require('gulp-component')

module.exports = function (grunt) {
grunt.registerTask('dev', function () {
gulp.src('./component.json')
.pipe(component.scripts({
standalone: 'Vue',
name: 'vue'
}))
.pipe(gulp.dest('./dist'))
.on('end', this.async())
})
}
15 changes: 15 additions & 0 deletions tasks/instrument.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
var gulp = require('vinyl-fs'),
component = require('gulp-component'),
jsc = require('gulp-jscoverage')

module.exports = function (grunt) {
grunt.registerTask('instrument', function () {
gulp.src('./component.json')
.pipe(component.scripts({
name: 'vue.test'
}))
.pipe(jsc())
.pipe(gulp.dest('./test'))
.on('end', this.async())
})
}
13 changes: 0 additions & 13 deletions tasks/jsc.js

This file was deleted.

3 changes: 1 addition & 2 deletions tasks/release.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,11 @@ module.exports = function (grunt) {
'Releasing: v' + next +
'\x1b[39m\x1b[22m'
)
grunt.config.set('version', next)
grunt.task.run([
'jshint',
'build:' + next,
'test',
'version:' + next,
'dist',
'git:' + next
])
}
Expand Down
30 changes: 9 additions & 21 deletions tasks/size.js
Original file line number Diff line number Diff line change
@@ -1,31 +1,19 @@
var fs = require('fs'),
zlib = require('zlib'),
min = 'dist/vue.min.js',
gz = 'dist/vue.min.js.gz'

module.exports = function (grunt) {

grunt.registerTask('size', function () {

var done = this.async()

fs.createReadStream(min)
.pipe(zlib.createGzip())
.pipe(fs.createWriteStream(gz))
.on('finish', compareSizes)

function compareSizes () {
var minSize = (fs.statSync(min).size / 1024).toFixed(2),
gzSize = (fs.statSync(gz).size / 1024).toFixed(2)
console.log(
'\n\x1b[1m\x1b[34m' +
'File Sizes:'+
'\x1b[39m\x1b[22m'
)
console.log('Min : ' + minSize + 'kb')
console.log('Gzip : ' + gzSize + 'kb')
done()
}
var minSize = (fs.statSync(min).size / 1024).toFixed(2),
gzSize = (fs.statSync(gz).size / 1024).toFixed(2)
console.log(
'\n\x1b[1m\x1b[34m' +
'File Sizes:'+
'\x1b[39m\x1b[22m'
)
console.log('Min : ' + minSize + 'kb')
console.log('Gzip : ' + gzSize + 'kb')
})

}

0 comments on commit c7f8a68

Please sign in to comment.