码迷,mamicode.com
首页 > 其他好文 > 详细

grunt 相关知识

时间:2014-06-30 15:24:10      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   使用   

bubuko.com,布布扣
module.exports = function(grunt){

    // 项目配置
    grunt.initConfig({
        pkg: grunt.file.readJSON(‘package.json‘),
        uglify: {
            options: {
                banner: ‘/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n‘//添加banner
            },
            //任务一:压缩a.js,不混淆变量名,保留注释,添加banner和footer
            builda: {
                options: {
                    mangle: false, //不混淆变量名
                    preserveComments: ‘all‘, //不删除注释,还可以为 false(删除全部注释),some(保留@preserve @license @cc_on等注释)
                    footer:‘\n/*! <%= pkg.name %> 最后修改于: <%= grunt.template.today("yyyy-mm-dd") %> */‘//添加footer
                },
                files: {
                    ‘output/js/a.min.js‘: [‘js/a.js‘]
                }
            },
            //任务二:压缩b.js,输出压缩信息
            buildb:{
                options: {
                    report: "min"//输出压缩率,可选的值有 false(不输出信息),gzip
                },
                files: {
                    ‘output/js/b.min.js‘: [‘js/main/b.js‘]
                }
            },
            //任务三:按原文件结构压缩js文件夹内所有JS文件
            buildall: {
                files: [{
                    expand:true,
                    cwd:‘js‘,//js目录下
                    src:‘**/*.js‘,//所有js文件
                    dest: ‘output/js‘//输出到此目录下
                }]
            },
            //任务四:合并压缩a.js和b.js
            release: {
                files: {
                    ‘output/js/index.min.js‘: [‘js/a.js‘, ‘js/main/b.js‘]
                }
            }
        }
    });

    // 加载提供"uglify"任务的插件
    grunt.loadNpmTasks(‘grunt-contrib-uglify‘);

    // 默认任务
    grunt.registerTask(‘default‘, [‘uglify:release‘]);
    grunt.registerTask(‘mina‘, [‘uglify:builda‘]);
    grunt.registerTask(‘minb‘, [‘uglify:buildb‘]);
    grunt.registerTask(‘minall‘, [‘uglify:buildall‘]);
}
Gruntfile.js

Gruntfile.js 示例:

这里主要使用的是  grunt-contrib-uglify  使用了文件压缩和文件合并;

pkg: grunt.file.readJSON(‘package.json‘),

读取packages.json 文件里面的信息.

配置任务,使用uglify在里面配置任务 如上文件的 builda,buildb,buildall;

对于每个任务可配置的: 详细阅读 github uglify  doc 

  demotask:{
                options: {
            report: "min",//输出压缩率,可选的值有 false(不输出信息),gzip mangle:
false, //是否混淆变量名 默认false 添加 except: [‘jQuery‘, ‘Backbone‘] 例外 ;不要混淆替换jQuery 和Backbone //对压缩方式控制 去掉 console.* 方法 compress: { drop_console: true }, preserveComments: ‘all‘, //不删除注释,还可以为 false(删除全部注释),some(保留@preserve @license @cc_on等注释) footer:‘\n/*! <%= pkg.name %> 最后修改于: <%= grunt.template.today("yyyy-mm-dd") %> */‘//添加footer }, files: [{ expand:true, cwd:‘js‘,//js目录下 src:‘**/*.js‘,//所有js文件 dest: ‘output/js‘//输出到此目录下 }] }

 

grunt 相关知识,布布扣,bubuko.com

grunt 相关知识

标签:des   style   blog   http   color   使用   

原文地址:http://www.cnblogs.com/acmilan/p/3812708.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!