/*global module:false*/ module.exports = function(grunt) { var banner = '/*!\n' + ' * ====================================================\n' + ' * <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' + '<%= grunt.template.today("yyyy-mm-dd") %>\n' + '<%= pkg.homepage ? " * " + pkg.homepage + "\\n" : "" %>' + ' * GitHub: <%= pkg.repository.url %> \n' + ' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' + ' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %>\n' + ' * ====================================================\n' + ' */\n\n'; var expose = '\nuse(\'expose-kity\');\n'; // Project configuration. grunt.initConfig({ // Metadata. pkg: grunt.file.readJSON('package.json'), dependence: { options: { entrance: 'expose-kity', base: 'src' }, merge: { files: [{ src: 'src/**/*.js', dest: '.build_tmp/kity_tmp.js' }] } }, concat: { closure: { options: { banner: banner + '(function () {\n', footer: expose + '})();' }, files: { 'dist/kity.js': ['.build_tmp/kity_tmp.js'] } } }, uglify: { options: { banner: banner }, minimize: { files: { 'dist/kity.min.js': 'dist/kity.js' } } }, clean: { tmp: ['.build_tmp'] }, jasmine: { unit: { src: ['dist/kity.min.js'], options: { specs: [ 'spec/core/*', 'spec/graphic/*' ], helpers: 'spec/SpecHelper.js', host: 'http://127.0.0.1:7777/' } } }, connect: { unit: { options: { hostname: '0.0.0.0', port: 7777, base: '.' } } } }); // These plugins provide necessary tasks. grunt.loadNpmTasks('grunt-module-dependence'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-contrib-jasmine'); // Default task. grunt.registerTask('default', ['dependence:merge', 'concat:closure', 'uglify:minimize', 'clean:tmp']); grunt.registerTask('test', ['default', 'connect:unit', 'jasmine:unit']); };