Skip to content

Commit c7f8a68

Browse files
committed
test using gulp plugins instead
1 parent d280f50 commit c7f8a68

File tree

9 files changed

+97
-116
lines changed

9 files changed

+97
-116
lines changed

.jshintrc

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,18 @@
1010
"node": true,
1111
"laxbreak": true,
1212
"globals": {
13-
"console": true
13+
"console": true,
14+
"it": true,
15+
"describe": true,
16+
"before": true,
17+
"after": true,
18+
"assert": true,
19+
"mock": true,
20+
"Vue": true,
21+
"$": true,
22+
"mockHTMLEvent": true,
23+
"mockMouseEvent": true,
24+
"mockKeyEvent": true,
25+
"casper": true
1426
}
1527
}

Gruntfile.js

Lines changed: 9 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,16 @@ module.exports = function( grunt ) {
44

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

7-
componentbuild: {
8-
build: {
9-
options: {
10-
name: 'vue',
11-
standalone: 'Vue'
12-
},
13-
src: '.',
14-
dest: 'dist'
15-
},
16-
test: {
17-
options: {
18-
name: 'vue.test'
19-
},
20-
src: '.',
21-
dest: 'test'
22-
}
23-
},
24-
257
jshint: {
268
options: {
279
reporter: require('jshint-stylish'),
2810
jshintrc: true
2911
},
3012
dev: {
31-
src: ['src/**/*.js']
13+
src: 'src/**/*.js'
3214
},
3315
test: {
34-
src: ['test/unit/specs/*.js', 'test/functional/specs/*.js']
16+
src: 'test/*/specs/*.js'
3517
}
3618
},
3719

@@ -45,65 +27,42 @@ module.exports = function( grunt ) {
4527
}
4628
},
4729

48-
uglify: {
49-
build: {
50-
options: {
51-
compress: true,
52-
mangle: true
53-
},
54-
files: {
55-
'dist/vue.min.js': 'dist/vue.js'
56-
}
57-
}
58-
},
59-
6030
watch: {
6131
options: {
6232
nospawn: true
6333
},
6434
dev: {
6535
files: ['src/**/*.js', './component.json'],
66-
tasks: ['componentbuild', 'jsc']
36+
tasks: ['dev', 'instrument']
6737
}
6838
}
6939

7040
})
7141

72-
// load npm tasks
73-
require('load-grunt-tasks')(grunt)
42+
grunt.loadNpmTasks('grunt-mocha')
43+
grunt.loadNpmTasks('grunt-contrib-watch')
44+
grunt.loadNpmTasks('grunt-contrib-jshint')
7445

7546
// load custom tasks
7647
grunt.file.recurse('tasks', function (path) {
7748
require('./' + path)(grunt)
7849
})
7950

80-
grunt.registerTask( 'dist', [
81-
'uglify',
82-
'banner',
83-
'size'
84-
])
85-
86-
grunt.registerTask( 'build', [
87-
'componentbuild:build',
88-
'dist'
89-
])
90-
9151
grunt.registerTask( 'unit', [
92-
'componentbuild:test',
93-
'jsc',
52+
'instrument',
9453
'mocha'
9554
])
9655

9756
grunt.registerTask( 'test', [
9857
'unit',
99-
'componentbuild:build',
10058
'casper'
10159
])
10260

10361
grunt.registerTask( 'default', [
10462
'jshint',
63+
'build',
10564
'test',
106-
'dist'
65+
'size'
10766
])
10867

10968
}

tasks/banner.js

Lines changed: 0 additions & 29 deletions
This file was deleted.

tasks/build.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
var gulp = require('vinyl-fs'),
2+
component = require('gulp-component'),
3+
rename = require('gulp-rename'),
4+
uglify = require('gulp-uglify'),
5+
header = require('gulp-header'),
6+
gzip = require('gulp-gzip')
7+
8+
var dest = './dist'
9+
10+
var headerTemplate =
11+
'/*\n' +
12+
' VueJS v{{version}}\n' +
13+
' (c) 2013 Evan You\n' +
14+
' License: MIT\n' +
15+
'*/'
16+
17+
module.exports = function (grunt) {
18+
grunt.registerTask('build', function (version) {
19+
version = version || grunt.config.get('version')
20+
var headerText = headerTemplate.replace(/{{version}}/, version)
21+
gulp.src('./component.json')
22+
.pipe(component.scripts({
23+
standalone: 'Vue',
24+
name: 'vue'
25+
}))
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))
34+
.on('end', this.async())
35+
})
36+
}

tasks/dev.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
var gulp = require('vinyl-fs'),
2+
component = require('gulp-component')
3+
4+
module.exports = function (grunt) {
5+
grunt.registerTask('dev', function () {
6+
gulp.src('./component.json')
7+
.pipe(component.scripts({
8+
standalone: 'Vue',
9+
name: 'vue'
10+
}))
11+
.pipe(gulp.dest('./dist'))
12+
.on('end', this.async())
13+
})
14+
}

tasks/instrument.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
var gulp = require('vinyl-fs'),
2+
component = require('gulp-component'),
3+
jsc = require('gulp-jscoverage')
4+
5+
module.exports = function (grunt) {
6+
grunt.registerTask('instrument', function () {
7+
gulp.src('./component.json')
8+
.pipe(component.scripts({
9+
name: 'vue.test'
10+
}))
11+
.pipe(jsc())
12+
.pipe(gulp.dest('./test'))
13+
.on('end', this.async())
14+
})
15+
}

tasks/jsc.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

tasks/release.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,11 @@ module.exports = function (grunt) {
4747
'Releasing: v' + next +
4848
'\x1b[39m\x1b[22m'
4949
)
50-
grunt.config.set('version', next)
5150
grunt.task.run([
5251
'jshint',
52+
'build:' + next,
5353
'test',
5454
'version:' + next,
55-
'dist',
5655
'git:' + next
5756
])
5857
}

tasks/size.js

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,19 @@
11
var fs = require('fs'),
2-
zlib = require('zlib'),
32
min = 'dist/vue.min.js',
43
gz = 'dist/vue.min.js.gz'
54

65
module.exports = function (grunt) {
76

87
grunt.registerTask('size', function () {
9-
10-
var done = this.async()
11-
12-
fs.createReadStream(min)
13-
.pipe(zlib.createGzip())
14-
.pipe(fs.createWriteStream(gz))
15-
.on('finish', compareSizes)
16-
17-
function compareSizes () {
18-
var minSize = (fs.statSync(min).size / 1024).toFixed(2),
19-
gzSize = (fs.statSync(gz).size / 1024).toFixed(2)
20-
console.log(
21-
'\n\x1b[1m\x1b[34m' +
22-
'File Sizes:'+
23-
'\x1b[39m\x1b[22m'
24-
)
25-
console.log('Min : ' + minSize + 'kb')
26-
console.log('Gzip : ' + gzSize + 'kb')
27-
done()
28-
}
8+
var minSize = (fs.statSync(min).size / 1024).toFixed(2),
9+
gzSize = (fs.statSync(gz).size / 1024).toFixed(2)
10+
console.log(
11+
'\n\x1b[1m\x1b[34m' +
12+
'File Sizes:'+
13+
'\x1b[39m\x1b[22m'
14+
)
15+
console.log('Min : ' + minSize + 'kb')
16+
console.log('Gzip : ' + gzSize + 'kb')
2917
})
3018

3119
}

0 commit comments

Comments
 (0)