grunt file demo

module.exports = function (grunt) {
  'use strict'
  var baseSrc = 'src/main/webapp';
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    clean: {
      clean: [baseSrc + "/dist"]
    },
    copy: {
      main: {
        expand: true,
        cwd: baseSrc + '/images',
        src: '**',
        dest: baseSrc + '/dist/images',
        flatten: true,
        filter: 'isFile'
      }
    },
    htmlmin: {
      dist: {
        options: {
          removeComments: true,
          collapseWhitespace: true
        },
        files: [
          {
            expand: true,
            cwd: baseSrc,
            src: ['*.html'],
            dest: baseSrc + '/dist'
          }
        ]
      }
    },
    cssmin: {
      options: {
        report: 'gzip'
      },
      dist: {
        expand: true,
        cwd: baseSrc + '/css',
        src: ['**/*.css'],
        dest: baseSrc + '/dist/css'
      }
    },
    img: {
      task1: {
        src: baseSrc + '/images/*.{png,jpg}',
        dest: baseSrc + '/dist/images/'
      },
      task2: {
        src: baseSrc + '/images/betslip/*.{png,jpg}',
        dest: baseSrc + '/dist/images/betslip'
      },
      task3: {
        src: baseSrc + '/images/datetimepicker/*.{png,jpg}',
        dest: baseSrc + '/dist/images/datetimepicker'
      }
    },
    uglify: {
      options: {
        report: 'gzip',
        mangle: {
          except:['$','Backbone','require','exports']
        }
      },
      dist: {
        files: [
          {
            expand: true,
            cwd: baseSrc + '/js',
            src: ['**/*.js'],
            dest: baseSrc + '/dist/js'
          }
        ]
      }
    },
    jst: {
      bulid: {
        files: [
          {
            expand: true,
            cwd: baseSrc + '/templates',
            src: ['**/*.tpl'],
            dest: baseSrc + '/dist/templates',
            ext: '.js'
          }
        ]
      },
      options: {
        amd: true,
        namespace: false,
        prettify: true
      }
    }
  });
  //HTML
  grunt.loadNpmTasks('grunt-contrib-htmlmin')
  //CSS
  grunt.loadNpmTasks('grunt-contrib-csslint')
  grunt.loadNpmTasks('grunt-contrib-cssmin')
  //JAVASCRIPT
  grunt.loadNpmTasks('grunt-contrib-jshint')
  grunt.loadNpmTasks('grunt-contrib-uglify')
  /**
   * https://github.com/heldr/grunt-img
   * image compress
   */
  grunt.loadNpmTasks('grunt-img')
  //TEMPLATE
  grunt.loadNpmTasks('grunt-contrib-jst');
  //CONTRIB
  grunt.loadNpmTasks('grunt-contrib-clean')
  grunt.loadNpmTasks('grunt-contrib-concat')
  grunt.loadNpmTasks('grunt-contrib-copy')
  grunt.loadNpmTasks('grunt-contrib-watch')

  grunt.registerTask('build', ['uglify', 'cssmin' , 'htmlmin', 'jst', 'img']);
};

 

posted @ 2014-02-25 17:01  x.radish  阅读(231)  评论(0)    收藏  举报