module.exports = function(grunt) { var pkg = grunt.file.readJSON('package.json'); var banner = [ '/**', '* Ajax Autocomplete for jQuery, version ' + pkg.version, '* (c) 2014 Tomas Kirda', '*', '* Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.', '* For details, see the web site: https://github.com/devbridge/jQuery-Autocomplete', '*/'].join('\n') + '\n'; // Project configuration. grunt.initConfig({ pkg: pkg, uglify: { options: { banner: banner }, build: { src: 'src/jquery.autocomplete.js', dest: 'dist/jquery.autocomplete.min.js' } } }); // Load the plugin that provides the "uglify" task. grunt.loadNpmTasks('grunt-contrib-uglify'); // Default task(s). grunt.registerTask('default', ['uglify']); grunt.task.registerTask('build', 'Create release', function() { var version = pkg.version, src = grunt.file.read('src/jquery.autocomplete.js').replace('%version%', version), filePath = 'dist/jquery.autocomplete.js'; // Update not minimized release version: console.log('Updating: ' + filePath); grunt.file.write(filePath, src); // Minify latest version: grunt.task.run('uglify'); // Update plugin version: filePath = 'devbridge-autocomplete.jquery.json'; src = grunt.file.readJSON(filePath); if (src.version !== version){ src.version = version; console.log('Updating: ' + filePath); grunt.file.write(filePath, JSON.stringify(src, null, 4)); } else { console.log('No updates for: ' + filePath); } // Update bower version: filePath = 'bower.json'; src = grunt.file.readJSON(filePath); if (src.version !== version){ src.version = version; console.log('Updating: ' + filePath); grunt.file.write(filePath, JSON.stringify(src, null, 4)); } else { console.log('No updates for: ' + filePath); } }); };