wigjs
Version:
Minimalistic, scalable, extensible, dependency-less Front-end factory for HTML5 applications
103 lines (88 loc) • 2.59 kB
JavaScript
module.exports = function (grunt) {
'use strict';
var pkg = grunt.file.readJSON('package.json'),
banner = [
'/**',
'* <%= pkg.name %> - <%= pkg.version %>',
'*/',
''
].join('\n');
grunt.initConfig({
pkg: pkg,
jshint: {
options: {
jshintrc: '.jshintrc'
},
files: {
src: [
'Gruntfile.js',
'src/**/*.js',
'test/**/*.js'
]
}
},
concat: {
build: {
options: {
banner: banner,
separator: '\n\n'
},
src: [
'./src/intro',
'./src/core/env.js',
'./src/core/**/*.js',
'./src/modules/base/**/*.js',
'./src/modules/**/*.js',
'./src/methods/**/*.js',
'./src/View.js',
'./src/**/*.js',
'./src/outro'
],
dest: 'wig.js'
}
},
uglify: {
build: {
options: {
banner: banner
},
files: {
'wig.min.js': 'wig.js'
}
}
},
mocha: {
dev: {
src: ['test/spec-runner.html']
},
ci: {
options: {
reporter: 'XUnit'
},
src: ['test/spec-runner.min.html'],
dest: 'test-results.xml'
}
},
watch: {
dev: {
files: [
'Gruntfile.js',
'src/**/*.js',
'test/**/*.js',
'test/spec-runner.html'
],
tasks: ['jshint', 'test']
}
}
});
grunt.loadNpmTasks('grunt-mocha');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', ['build']);
grunt.registerTask('dev', ['jshint', 'test', 'watch']);
grunt.registerTask('build', ['jshint', 'concat']);
grunt.registerTask('test', ['build', 'mocha:dev']);
grunt.registerTask('deploy', ['build', 'mocha:ci', 'uglify']);
};