!!! Listings aud dem Artikel "Reine Routine" !!! von Roland Eckl !!! in iX 12/2012, S. 76 !!! Listing 1: Typisches Grunt-File 1 /*global module:false*/ 2 module.exports = function(grunt) { 3 4 // Project configuration. 5 grunt.initConfig({ 6 pkg: '', 7 meta: { 8 banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' + 9 '<%= grunt.template.today("yyyy-mm-dd") %>\n' + 10 '<%= pkg.homepage ? "* " + pkg.homepage + "\n" : "" %>' + 11 '* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' + 12 ' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */' 13 }, 14 lint: { 15 files: ['grunt.js', 'lib/**/*.js', 'test/**/*.js'] 16 }, 17 qunit: { 18 files: ['test/**/*.html'] 19 }, 20 concat: { 21 dist: { 22 src: ['', '.js>'], 23 dest: 'dist/<%= pkg.name %>.js' 24 } 25 }, 26 min: { 27 dist: { 28 src: ['', ''], 29 dest: 'dist/<%= pkg.name %>.min.js' 30 } 31 }, 32 watch: { 33 files: '', 34 tasks: 'lint qunit' 35 }, 36 jshint: { 37 options: { 38 curly: true, 39 eqeqeq: true, 40 immed: true, 41 latedef: true, 42 newcap: true, 43 noarg: true, 44 sub: true, 45 undef: true, 46 boss: true, 47 eqnull: true, 48 browser: true 49 }, 50 globals: {} 51 }, 52 uglify: {} 53 }); 54 55 // Default task. 56 grunt.registerTask('default', 'lint qunit concat min'); 57 58 }; !!! Listing 2: Einfache Task zum Addieren 1 module.exports = function(grunt) { 2 grunt.task.registerTask('add', 'Addiert zwei Zahlen', function(arg1, arg2) { 3 if ((arguments.length !== 2) || (typeof(arg1) === typeof(arg2) === 'number')) { 4 grunt.error("Dieser Task erwartet genau zwei Zahlen!"); 5 } else { 6 var summe = parseInt(arg1) + parseInt(arg2); 7 grunt.log.writeln("Die Summe ist: " + summe); 8 } 9 }); 10 };