Uglify的使用

一、GRUNT的安装

通过以下命令行安装CLI
npm install -g grunt-cli
上述命令执行完后,grunt 命令就被加入到你的系统路径中了,以后就可以在任何目录下执行此命令了。
安装Uglify
npm install grunt-contrib-uglify --save-dev

二、使用Uglify

1、创建一个项目文件夹,在文件夹中创建名为package.json和Gruntfile.js的文件
2、在Gruntfile.js文件中写关于配置信息的js代码
3、

// 加载提供"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']);

4、在命令行中输入命令执行Gruntfile.js中的配置
实例参见uglify

三、Uglify的配置项

  • mangle:false/true是否混淆变量名,Boolean,
  • preseveComments:”all”不删除注释/”false”删除全部注释/”some”保留部分注释(@preserve @license @cc_on等注释),
  • banner: 字符串,默认值‘’,这个字符串将被添加到缩小的输出。 模板字符串(例如<%= config.value%>)将自动展开。
  • footer:添加尾部注释一般格式为
’\n/*!<%=pkg.name%>最后修改于:<%=grunt.template.today(“yyyy-mm-dd”)%>*/’,
  • report:报告”min”默认/”none” /”gzip”
  • Release:{合并压缩
files:{
 “合并后的文件地址和文件名”:[“要合并的文件1”,”要合并的文件2”,……]
 }

}

    • expression:解析单个表达式,而不是一个程序(用于解析JSON) Boolean,
    • Beautify:对生成源代码的美化,Boolean,
    • quoteStyle: 类型:整数,默认值:0,保留或强制引号标记样式。 0将使用单引号或双引号,如最小化字节数(更喜欢双引号时,两者都会做)
      1将始终使用单引号
      2将始终使用双引号
      3将保留原引号;
    • compress : 使用默认选项打开或关闭源压缩。 如果指定了Object,它将作为选项传递给UglifyJS.Compressor().
    • sourceMap : boolean, 如果为true,源映射文件将在与dest文件相同的目录中生成。 默认情况下,它将具有与dest文件相同的basename,但扩展名为.map。
    • sourceMapName : 字符串函数,默认值是undefined。要自定义生成的源映射的名称或位置,请传递一个字符串以指示将源映射写入到何处。 如果提供了函数,则将传递uglify目标作为参数,并将返回值用作文件名
    • sourceMapIn : 字符串函数,默认值是undefined。来自较早编译的输入源映射的位置,例如, 从CoffeeScript。 如果提供了函数,则将传递uglify源作为参数,并将返回值用作sourceMap名称。 这只有在有一个源文件时才有意义。
    • sourceMapIncludeSources : Boolean,默认是false。如果要将源映射中的源文件的内容包含为sourcesContent属性,请传递此标志。
    • sourceMapRoot :字符串,默认值undefined。使用此选项,您可以自定义浏览器在查找源时将使用的根URL。如果源在sourceMapRoot的前置之后不是绝对URL,则相对于源映射解析源。
    • sourceMapUrl :字符串,默认值undefined。覆盖源映射中sourceMappingURL的计算值。 如果源映射位置不是相对于缩小文件的基本路径,即当使用CDN时也很有用的。
    • enclose : 对象,默认值undefined 。使用可配置的参数/参数列表封装闭包中的所有代码。 包围对象中的每个键值对实际上是参数对。
    • wrap: 字符串,默认值undefined。将所有代码封装在一个闭包中,一个简单的方法来确保没有泄漏。 对于需要是公共出口和全局变量可用的变量。 wrap的值是全局变量exports,将可用为。
    • maxLineLen :number,默认值32000,以符号限制行长。 pass maxLineLen = 0以禁用此安全功能。
    • ASCIIOnly : boolean,默认值false。允许将非ASCII字符编码为\ uxxxx。
    • exportAll: boolean,默认值false。当使用wrap时,这将使所有全局函数和变量通过export变量可用。
    • screwIE8 :boolean,默认值true。如果您仍然关注完全符合Internet Explorer 6-8怪癖,请将此值设置为false。
    • mangleProperties :Boolean,默认值:false.使用默认选项打开或关闭属性修改。 如果指定了Object,它将直接传递到ast.mangle_properties()(模仿命令行行为)
    • reserveDOMProperties : boolean,默认值false。将此标志与mangleProperties结合使用可防止内置浏览器对象属性
    • exceptionsFiles :数组,[],使用它与mangleProperties传递一个或多个JSON文件,其中包含不应该被破坏的变量和对象属性的列表。 有关文件语法的更多信息,请参阅UglifyJS文档。 https://www.npmjs.com/package/uglify-js
    • nameCache : 字符串,作为uglify的JSON缓存文件的路径的字符串将创建并用于协调多个运行的丑陋之间的符号调整。 注意:此生成的文件使用与exceptionsFiles文件相同的JSON格式。

转载于:https://www.cnblogs.com/liuyangdiv/p/6425805.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值