Grunt插件三grunt-contrib-uglify参数和使用

2014-8-26 作者:小V 浏览:7464

标签: javascript js构建工具grunt

Grunt插件grunt-contrib-uglify(js压缩)

参数 类型 默认值 描述
mangle Boolean {} 打开或关闭使用默认选项重整。如果指定一个对象,它直接传递给ast.mangle_names()和ast.compute_char_frequency()(模仿命令行的行为)。
compress Boolean {} 打开或关闭使用默认选项源压缩。如果指定一个对象,它是通过作为选项UglifyJS.Compressor()。
beautify Boolean false 打开的生成的源代码美化。对象将被合并,并通过了发往UglifyJS.OutputStream的选项()
expression Boolean false 解析一个表达式,而不是一个程序(用于解析JSON)
report 'min', 'gzip' 'min' 无论是报告只造成微小或报告微小和gzip的结果。这是为了看看到底有多好清理CSS是表演,但使用“gzip的”将任务需要5到10倍更长的时间来完成有用的。示例输出。
sourceMap Boolean false 如果为true,源映射文件将在同一目录下DEST文件生成。默认情况下,将具有相同的基本名称为DEST文件,但有.MAP扩展。
sourceMapName 字符串函数 未定义 要自定义的名称或生成的源地图的位置,通过一个字符串来表示,其中写的源地图。如果函数提供的丑化目的地作为参数传递和返回值将被用来作为文件名。
sourceMapIn 字符串函数 未定义 输入源的地图,从早期的汇编,如位置从CoffeeScript的。如果函数提供的丑化源作为参数传递和返回值将被用作sourceMap名。这仅是有道理的,当有一个源文件。
sourceMapIncludeSources Boolean false 如果您要包含源文件的源地图的sourcesContent性内容传递此标志。
enclose Object 未定义 总结所有的代码在一个可配置的参数/参数列表中关闭。每个键 - 值对的封装对象实际上是一个参数,参数对。
wrap String 未定义 总结所有的代码在一个封闭,一个简单的方法,以确保没有任何泄漏。对于需要以公众出口和全局变量是可用的变量。圈的值是全局变量的出口将作为。
exportAll Boolean false 当使用保鲜膜这会让所有的全局变量和函数可以通过出口变量。
preserveComments Boolean
String
Function
undefined 选项:'false' 'all' 'some'
'false'将去除所有评论 
'all'会保留那些没有被压扁或删除代码块中的所有意见 
'some'将保留所有以一个感叹号(!)意见或包括封闭的编译器指令式(@preserve@license@cc_on)
'function'函数指定自己的意见保鲜功能。您将通过当前节点和当前注释和预期返回true或false
banner String 空字符串 这个字符串将被前置到缩小的输出。模板字符串(例如<%= config.value%>会自动扩充。
footer String 空字符串 这个字符串将被追加到缩小的输出。模板字符串(例如<%= config.value%>会自动扩充。

例子1:

grunt.initConfig({
  uglify: {
    my_target: {
      files: {
        'dest/output.min.js': ['src/input1.js', 'src/input2.js']
      }
    }
  }
});

没有识别码demo

grunt.initConfig({
  uglify: {
    options: {
      mangle: false
    },
    my_target: {
      files: {
        'dest/output.min.js': ['src/input.js']
      }
    }
  }
});

保留标识符demo

grunt.initConfig({
  uglify: {
    options: {
      mangle: {
        except: ['jQuery', 'Backbone']
      }
    },
    my_target: {
      files: {
        'dest/output.min.js': ['src/input.js']
      }
    }
  }
});

来源地图demo

grunt.initConfig({
  uglify: {
    my_target: {
      options: {
        sourceMap: true,
        sourceMapName: 'path/to/sourcemap.map'
      },
      files: {
        'dest/output.min.js': ['src/input.js']
      }
    }
  }
});

高级源地图demo

grunt.initConfig({
  uglify: {
    my_target: {
      options: {
        sourceMap: true,
        sourceMapIncludeSources: true,
        sourceMapIn: 'example/coffeescript-sourcemap.js', // input sourcemap from a previous compilation
      },
      files: {
        'dest/output.min.js': ['src/input.js'],
      },
    },
  },
});

grunt.initConfig({
  uglify: {
    options: {
      compress: {
        drop_console: true
      }
    },
    my_target: {
      files: {
        'dest/output.min.js': ['src/input.js']
      }
    }
  }
});

美化demo

grunt.initConfig({
  uglify: {
    my_target: {
      options: {
        beautify: true
      },
      files: {
        'dest/output.min.js': ['src/input.js']
      }
    },
    my_advanced_target: {
      options: {
        beautify: {
          width: 80,
          beautify: true
        }
      },
      files: {
        'dest/output.min.js': ['src/input.js']
      }
    }
  }
});

grunt.initConfig({
  pkg: grunt.file.readJSON('package.json'),
  uglify: {
    options: {
      banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
        '<%= grunt.template.today("yyyy-mm-dd") %> */'
    },
    my_target: {
      files: {
        'dest/output.min.js': ['src/input.js']
      }
    }
  }
});

条件编译demo

grunt.initConfig({
  uglify: {
    options: {
      compress: {
        global_defs: {
          "DEBUG": false
        },
        dead_code: true
      }
    },
    my_target: {
      files: {
        'dest/output.min.js': ['src/input.js']
      }
    }
  }
});

动态编译一个文件夹中的所有文件demo

grunt.initConfig({
  uglify: {
    my_target: {
      files: [{
          expand: true,
          cwd: 'src/js',
          src: '**/*.js',
          dest: 'dest/js'
      }]
    }
  }
});

grunt-contrib-uglify参数和使用相关推荐

  1. 前端自动化工具 grunt 插件 uglify 的简单使用(一)

    Grunt 的简介: Grunt 是一套前端自动化工具,是一个基于 node.js 的命令行工具,它一般用于: 1.压缩文件: 2.合并文件: 3.简单的语法检测: 4.监听文件变动: 5.less ...

  2. Grunt插件uglify

    Gruntfile.js里面配置: module.exports = function(grunt){// 项目配置 grunt.initConfig({pkg: grunt.file.readJSO ...

  3. grunt uglify 入门

    刚开始学习grunt  学习 uglify入门 1.  npm install grunt-contrib-uglify --save-dev 2. files 参数是grunt 通用的 效果:直接执 ...

  4. 前端工程化系列[02]-Grunt构建工具的基本使用

    本文主要介绍前端开发中常用的构建工具Grunt,具体包括Grunt的基本情况.安装.使用和常见插件的安装.配置和使用等内容. 1.1 Grunt简单介绍 Grunt是一套前端自动化构建工具.对于需要反 ...

  5. grunt 打包前端代码

    [grunt整合版]30分钟学会使用grunt打包前端代码 grunt 是一套前端自动化工具,一个基于nodeJs的命令行工具,一般用于: ① 压缩文件 ② 合并文件 ③ 简单语法检查 对于其他用法, ...

  6. 使用Grunt搭建自动化的web前端开发环境-完整教程

    jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! AD: jQuery在使用grunt,bootstrap在使用grunt, ...

  7. 【grunt整合版】30分钟学会使用grunt打包前端代码

    grunt 是一套前端自动化工具,一个基于nodeJs的命令行工具,一般用于: ① 压缩文件 ② 合并文件 ③ 简单语法检查 对于其他用法,我还不太清楚,我们这里简单介绍下grunt的压缩.合并文件, ...

  8. Grunt搭建自动化web前端开发环境--完整流程

    jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! 1. 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过 ...

  9. uglify使用随记

    uglify压缩js代码不仅仅是去除空格和注释,还能混淆 参数 mangle :true/false 是否混淆变量名 sourceMap:true/false 是否生成map文件,map文件的具体用法 ...

最新文章

  1. 玩转 Redis 集群之 Sentinel
  2. QML基础类型之matrix4x4
  3. setint 的用法
  4. php 微信pic_url,一段代码实现微信公众号开发校园图书馆
  5. 关于线段树or 树状树状 在二维平面搞事情!Orz
  6. 2 Advanced Read/Write Splitting with PHP’s MySQLnd
  7. 提升SQLite数据插入效率低、速度慢的方法
  8. U盘量产--U盘只读文件系统
  9. Python获取京东商城的商品分类,并将分类保存到csv
  10. 线性代数笔记5.3实对称矩阵的对角化
  11. 各种水龙头拆卸图解_水龙头拆除和安装步骤图解
  12. 高德地图很详细的用法 定位 搜索 添加小蓝点marker 移动地图实时定位
  13. 不同进制数之间的转换
  14. 【POJ3349】snowflakes
  15. Socket/Node/Die/Core/Processor/ 针对CPU封装的精细区分
  16. axios拦截器、ElementUI组件的使用
  17. win10系统分区方案教程
  18. Angular4 幕课网
  19. vs2008 c++ 使用NI的Measurement Studio工具 编译不过
  20. android解锁屏幕大师,锁屏这样玩才高端 应用推荐《锁屏大师》

热门文章

  1. Unexpected key(s) in state_dict: “module.conv1.weight“, “module.bn1.weight“, “module.bn1.bias“,
  2. JavaScript实现灯泡开关
  3. 奢侈品品牌控告中国在线购物巨头容许假货
  4. 校内论坛csdn开通了
  5. caioj1212:【计算几何】判断线段相交(快速排斥判断与跨立实验)
  6. Ganymed使用简单demo
  7. Vb.net发送腾讯云短信
  8. LINUX 安装MegaRAID Storage Manager (MSM)安装使用教程
  9. 双代号网络图、双代号时标网络图、单代号网络图精讲
  10. Dos命令关机、重启