grunt自定义任务——合并压缩css和js

 

npm文档:www.npmjs.com

grunt基础教程:http://www.gruntjs.net/docs/getting-started/

  http://www.w3cplus.com/tools/grunt-tutorial-start-grunt.html
  http://www.w3cplus.com/tools/grunt-tutorial-installing-grunt.html
package配置文件
  http://blog.csdn.net/woxueliuyun/article/details/39294375

    npm install grunt@0.4.5 --save-dev//安装grunt
    npm install -g grunt-cli//全局执行cli
    npm install
    grunt --version//检测

grunt执行子任务:

grunt.initConfig({
    concat: {
        js:{},
        css:{}
    }
})

以上代码,只执行合并css,可以 grunt concat:css

一、需求

1.执行grunt——默认合并压缩js和css
2.执行grunt js——合并压缩js
3.执行grunt css——合并压缩css

 二、依赖插件

1.js压缩:uglify    https://github.com/gruntjs/grunt-contrib-uglify

三、代码

[GruntFile.js]

module.exports = function(grunt) {
    grunt.initConfig({
        timestamp:'<%= grunt.template.today("yyyymmddHHMM") %>',
        jspath:'app/js/',
        csspath:'app/css/',
        concat: {
            js:{
                options: {
                    separator: ';'
                },
                src: [
                    "<%= jspath %>template.js",
                    "<%= jspath %>returnCode.js",
                ],
                dest: '<%= jspath %>all.<%= timestamp %>.js'          
            },
            css:{
                src: [
                    '<%= csspath %>manage.css',
                    '<%= csspath %>jqpagination.css'
                ],
                dest: '<%= csspath %>all.<%= timestamp %>.css'
            }
        },
        uglify: {
            options: {
                banner: '/*! <%= concat.js.dest %> */\n'
            },
            dist: {
                files: {
                    '<%= jspath %>all.min.<%= timestamp %>.js': ['<%= concat.js.dest %>']
                }
            }
        },
        cssmin: {
            minify: {
                expand: true,
                cwd: '<%= csspath %>',
                src: 'all.<%= timestamp %>.css',
                dest: '<%= csspath %>',
                ext: '.min.<%= timestamp %>.css'
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    //自定义任务
    grunt.registerTask('default', ['concat','uglify','cssmin']);//默认    
    grunt.registerTask('js', ['concat:js','uglify']);
    grunt.registerTask('css', ['concat:css','cssmin']);
};

[pakeage.json]

{
  "name": "test",
  "author": "youryida",  
  "devDependencies": {
    "grunt": "^0.4.5",
    "grunt-contrib-concat": "^0.4.0",
    "grunt-contrib-uglify": "^0.4.0",
    "grunt-contrib-cssmin": "latest"
  }
}

 

posted @ 2014-12-30 19:24  youryida  阅读(263)  评论(0编辑  收藏  举报