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

本文介绍如何使用Grunt实现前端资源的自动化构建流程,包括安装配置Grunt、定义任务来合并压缩JavaScript和CSS文件,并通过具体示例展示了如何在项目中运用Grunt进行资源管理和优化。

 

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.youkuaiyun.com/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"
  }
}

 

转载于:https://www.cnblogs.com/youryida/p/4194313.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值