2014-09-26 13:26:23 +08:00
|
|
|
var sauceConfig = require('./grunt/sauce')
|
|
|
|
|
2014-07-09 01:45:53 +08:00
|
|
|
module.exports = function (grunt) {
|
|
|
|
|
2014-07-28 23:26:56 +08:00
|
|
|
var version = grunt.file.readJSON('package.json').version
|
|
|
|
var banner =
|
|
|
|
'/**\n' +
|
|
|
|
' * Vue.js v' + version + '\n' +
|
|
|
|
' * (c) ' + new Date().getFullYear() + ' Evan You\n' +
|
|
|
|
' * Released under the MIT License.\n' +
|
|
|
|
' */\n'
|
|
|
|
|
2014-07-09 06:14:04 +08:00
|
|
|
grunt.initConfig({
|
|
|
|
|
2014-09-02 00:37:22 +08:00
|
|
|
banner: banner,
|
|
|
|
|
2014-07-09 06:14:04 +08:00
|
|
|
jshint: {
|
|
|
|
options: {
|
|
|
|
reporter: require('jshint-stylish'),
|
|
|
|
jshintrc: true
|
|
|
|
},
|
|
|
|
build: {
|
|
|
|
src: ['gruntfile.js', 'tasks/*.js']
|
|
|
|
},
|
|
|
|
src: {
|
|
|
|
src: 'src/**/*.js'
|
|
|
|
},
|
|
|
|
test: {
|
2014-09-23 19:46:53 +08:00
|
|
|
src: ['test/unit/specs/**/*.js', 'test/e2e/*.js']
|
2014-07-09 06:14:04 +08:00
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2014-09-02 00:37:22 +08:00
|
|
|
watch: {
|
|
|
|
options: {
|
|
|
|
nospawn: true
|
|
|
|
},
|
|
|
|
dev: {
|
|
|
|
files: ['src/**/*.js'],
|
|
|
|
tasks: ['dev']
|
2014-09-05 20:48:01 +08:00
|
|
|
},
|
|
|
|
test: {
|
|
|
|
files: ['test/unit/specs/**/*.js'],
|
|
|
|
tasks: ['build-test']
|
2014-09-02 00:37:22 +08:00
|
|
|
}
|
|
|
|
},
|
|
|
|
|
2014-07-09 06:14:04 +08:00
|
|
|
karma: {
|
|
|
|
options: {
|
|
|
|
frameworks: ['jasmine', 'commonjs'],
|
|
|
|
files: [
|
|
|
|
'src/**/*.js',
|
2014-08-19 06:03:01 +08:00
|
|
|
'test/unit/specs/**/*.js'
|
2014-07-09 06:14:04 +08:00
|
|
|
],
|
|
|
|
preprocessors: {
|
|
|
|
'src/**/*.js': ['commonjs'],
|
2014-08-19 06:03:01 +08:00
|
|
|
'test/unit/specs/**/*.js': ['commonjs']
|
2014-07-09 06:14:04 +08:00
|
|
|
},
|
|
|
|
singleRun: true
|
|
|
|
},
|
|
|
|
browsers: {
|
|
|
|
options: {
|
2014-07-10 07:08:01 +08:00
|
|
|
browsers: ['Chrome', 'Firefox'],
|
|
|
|
reporters: ['progress']
|
|
|
|
}
|
|
|
|
},
|
2014-09-26 13:26:23 +08:00
|
|
|
coverage: {
|
2014-07-10 07:08:01 +08:00
|
|
|
options: {
|
|
|
|
browsers: ['PhantomJS'],
|
2014-08-06 02:29:53 +08:00
|
|
|
reporters: ['progress', 'coverage'],
|
|
|
|
preprocessors: {
|
|
|
|
'src/**/*.js': ['commonjs', 'coverage'],
|
2014-08-19 06:03:01 +08:00
|
|
|
'test/unit/specs/**/*.js': ['commonjs']
|
2014-08-06 02:29:53 +08:00
|
|
|
},
|
|
|
|
coverageReporter: {
|
|
|
|
reporters: [
|
|
|
|
{ type: 'lcov' },
|
|
|
|
{ type: 'text-summary' }
|
|
|
|
]
|
|
|
|
}
|
2014-07-09 06:14:04 +08:00
|
|
|
}
|
2014-09-26 13:26:23 +08:00
|
|
|
},
|
|
|
|
sauce1: {
|
|
|
|
options: sauceConfig.batch1
|
|
|
|
},
|
|
|
|
sauce2: {
|
|
|
|
options: sauceConfig.batch2
|
|
|
|
},
|
|
|
|
sauce3: {
|
|
|
|
options: sauceConfig.batch3
|
2014-07-09 06:14:04 +08:00
|
|
|
}
|
2014-09-27 01:33:03 +08:00
|
|
|
},
|
|
|
|
|
|
|
|
coveralls: {
|
|
|
|
options: {
|
|
|
|
coverage_dir: 'coverage/',
|
|
|
|
force: true
|
|
|
|
}
|
2014-07-09 06:14:04 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
})
|
|
|
|
|
2014-07-09 06:35:39 +08:00
|
|
|
// load npm tasks
|
2014-07-09 06:14:04 +08:00
|
|
|
grunt.loadNpmTasks('grunt-contrib-jshint')
|
2014-09-02 00:37:22 +08:00
|
|
|
grunt.loadNpmTasks('grunt-contrib-watch')
|
2014-07-09 06:14:04 +08:00
|
|
|
grunt.loadNpmTasks('grunt-karma')
|
2014-09-27 01:33:03 +08:00
|
|
|
grunt.loadNpmTasks('grunt-karma-coveralls')
|
2014-07-09 01:45:53 +08:00
|
|
|
|
2014-07-09 06:35:39 +08:00
|
|
|
// load custom tasks
|
2014-09-02 00:37:22 +08:00
|
|
|
grunt.file.recurse('grunt/tasks', function (path) {
|
2014-07-09 06:35:39 +08:00
|
|
|
require('./' + path)(grunt)
|
|
|
|
})
|
|
|
|
|
2014-07-09 06:14:04 +08:00
|
|
|
grunt.registerTask('unit', ['karma:browsers'])
|
2014-09-26 13:26:23 +08:00
|
|
|
grunt.registerTask('cover', ['karma:coverage'])
|
2014-09-23 19:46:53 +08:00
|
|
|
grunt.registerTask('test', ['unit', 'cover', 'casper'])
|
2014-09-26 13:26:23 +08:00
|
|
|
grunt.registerTask('sauce', ['karma:sauce1', 'karma:sauce2', 'karma:sauce3'])
|
2014-09-27 01:33:03 +08:00
|
|
|
grunt.registerTask('ci', ['jshint', 'test', 'coveralls', 'sauce'])
|
2014-08-21 00:07:16 +08:00
|
|
|
grunt.registerTask('default', ['jshint', 'test', 'build'])
|
2014-07-09 01:45:53 +08:00
|
|
|
|
|
|
|
}
|