/*global module:false*/ module.exports = function(grunt) { var packagejson = grunt.file.readJSON('package.json'); // Project configuration. grunt.initConfig({ // Metadata. pkg: packagejson, banner: '/*\n * <%= pkg.title || pkg.name %> v<%= pkg.version %> | JavaScript Heatmap Library\n *\n * Copyright 2008-2016 Patrick Wied - All rights reserved.\n * Dual licensed under MIT and Beerware license \n *\n * :: <%= grunt.template.today("yyyy-mm-dd HH:MM") %>\n */\n', // Task configuration. concat: { options: { banner: '<%= banner %>'+';(function (name, context, factory) {\n\n // Supports UMD. AMD, CommonJS/Node.js and browser context\n if (typeof module !== "undefined" && module.exports) {\n module.exports = factory();\n } else if (typeof define === "function" && define.amd) {\n define(factory);\n } else {\n context[name] = factory();\n }\n\n})("h337", this, function () {\n', footer: '\n\n});' }, dist: { src: packagejson.buildFiles, dest: 'build/heatmap.js' } }, uglify: { options: { banner: '<%= banner %>', mangle: true, compress: false, //compress must be false, otherwise behaviour change!!!!! beautify: false }, dist: { src: 'build/heatmap.js', dest: 'build/heatmap.min.js' } }, jshint: { options: { curly: true, eqeqeq: true, immed: true, latedef: true, newcap: true, noarg: true, sub: true, undef: true, unused: true, boss: true, eqnull: true, browser: true }, gruntfile: { src: 'Gruntfile.js' } }, watch: { gruntfile: { files: '<%= jshint.gruntfile.src %>', tasks: ['jshint:gruntfile'] }, dist: { files: packagejson.buildFiles, tasks: ['concat', 'jshint', 'uglify'] } } }); // These plugins provide necessary tasks. grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-watch'); // Default task. grunt.registerTask('default', ['concat', 'jshint', 'uglify', 'watch']); };