module.exports = function(grunt) {

  grunt.initConfig({
    uglify: {
      options: {
        preserveComments: "some"
          //banner: grunt.file.read('banner.txt') + '// @version: <%= buildversion %>'
          //mangle: false, beautify: true, compress: false
      },
      default: {
        files: {
          'puppet.min.js': 'src/puppet.js',
          'puppet-dom.min.js': 'src/puppet-dom.js'
        }
      }


    },
    watch: {
      all: {
        options: {
          livereload: true
        },
        files: [
          '*.html',
          '**/*.js',
          '**/*.html',
          'examples/**/*.html'
        ],
      },
    },
    bump: {
      options: {
        files: ['package.json', 'src/puppet.js', 'puppet.min.js', 'src/puppet-dom.js', 'puppet-dom.min.js'],
        commit: true,
        commitMessage: '%VERSION%',
        commitFiles: ['package.json', 'src/puppet.js', 'puppet.min.js', 'src/puppet-dom.js', 'puppet-dom.min.js'],
        createTag: true,
        tagName: '%VERSION%',
        tagMessage: 'Version %VERSION%',
        push: false,
        // pushTo: 'origin',
        globalReplace: false,
        prereleaseName: false,
        regExp: false
      }
    },

  });
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-bump');
};
@@ -1339,7 +1339,151 @@
 p');
+%0A%0A  grunt.registerTask('release', %22Uglify and bump%22, function(target) %7B%0A    grunt.task.run('uglify', target ? 'bump:' + target : 'bump');%0A  %7D);
 %0A%7D;
+%0A

Add release grunt task