uglify使用随记

本文详细介绍uglifyJS的配置选项,包括变量名混淆、生成sourceMap、去除console.log等实用功能,并提供实际配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

uglify压缩js代码不仅仅是去除空格和注释,还能混淆

参数

mangle :true/false 是否混淆变量名

sourceMap:true/false 是否生成map文件,map文件的具体用法和作用请参考阮大的文章《Source Map 详解》
传送门→http://www.ruanyifeng.com/blog/2013/01/javascript_source_map.htmlJavaScript

sourceMapName:接受一个字符串参数,可以指定map文件存放的位置以及文件名

drop_console:ture/false 是否去掉console.log()(这个比较6)

beautify:true/false 是否格式化代码,为了方便debug,但是有了sourceMap,这个参数的作用微乎其微,还有一个可选参数width,默认值为80,代表每一行的字符数,可以改动数值,自行体会一下

banner:参数为一个字符串,作为顶部注释一同写入压缩后的文件中

footer:参数为一个字符串,作为底部注视一同写入压缩后的文件中

preserveComments: 参数为字符串 ‘all’/ ‘some’和false all是保留所有注释,some保留部分注释,比如用!标记的注释和类似于@preserve,@aa等类型的注释(官方文档解释) 2.0.0版本只有all和false有作用,还未弄清楚如何使用some

grunt.initConfig({
  uglify: {
    options: {
      mangle: false,  //不混淆变量名

      sourceMap: true,  //生成map文件

      sourceMapName: 'path/to/sourcemap.map',

      compress: {
        drop_console: true
      },  //去掉所有的console.log()

      beautify:{
        width: 80,
        beautify: true
      },  //格式化代码

     banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
        '<%= grunt.template.today("yyyy-mm-dd") %> */',  //顶部注释  动态获取package文件中的信息

     footer:'\n/*! <%= pkg.name %> 最后修改于: ' + 
        '<%= grunt.template.today("yyyy-mm-dd") %> */',  //底部注释  动态获取package文件中的信息

     preserveComments: 'all'  //保留所有注释

    },
    my_target: {
      files: {
        'dest/output.min.js': ['src/input.js']
      }
    }
  }
});

Compiling all files in a folder dynamically
操作文件夹下的所有js文件,进行压缩,并按原文件结构放到目标文件夹中


grunt.initConfig({
  uglify: {
    my_target: {
      files: [{
          expand: true,
          cwd: 'src/js',   //源文件夹
          src: '**/*.js',  //需要压缩的源文件
          dest: 'dest/js'  //压缩后文件存放的目标文件夹
      }]
    }
  }
});

最后附上一篇很棒的传送门→http://www.cnblogs.com/artwl/p/3449303.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值