grunt-contrib-uglify js压缩

grunt-contrib-uglify:压缩以及合并JavaScript文件。

插件安装:npm install grunt-contrib-uglify --save-dev

参数:

banner:文档头部添加,一般做说明和注释用

footer:文档底部添加,与banner功能相同

mangle:参数为false不混淆变量名(不改变原始定义的变量名);true:压缩后,改变原始定义的变量名

preserveComments:参数为all:保留注释;false:删除全部注释;some:保留@preserve/@license/@cc_on等注释

report:参数为min:输出压缩率;false:不输出信息;也可为gzip

beautify:参数为true:美化代码,即格式化显示,合并对象等;false:不美化代码

1.按原文件结构压缩js文件夹内所有JS文件

  • expand:如果设为true,就表示下面文件名的占位符(即*号)都要扩展成具体的文件名。
  • cwd:需要处理的文件所在目录
  • src:表示需要处理的文件。如果采用数组的形式,数组中的每一项都是一个文件名,可以使用通配符(*)。
  • dest:处理后的文件所在的目录。
  • ext:处理后的文件的后缀名。
  • flatten:删除所有生成的dest的路径部分。
  • rename:一个函数,接受匹配到的文件名、匹配的目标位置,返回一个新的目标路径。
grunt.initConfig({
  pkg: grunt.file.readJSON('package.json'),
  uglify: {
    options: {
      //添加banner
      banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */
'
    },
    buildall: {
      files: [{
        expand: true,
        cwd: 'js',//js目录下
        src: '**/*.js',//所有js文件
        dest: 'output/js'//输出到此目录下
      }]
    }
  }
});

2.合并压缩js

grunt.initConfig({
  pkg: grunt.file.readJSON('package.json'),
  uglify: {
    release: {// 合并压缩a.js和b.js
      files: {
        'output/js/index.min.js':['js/a.js','js/b.js']
      }
    }
  }
});
原文地址:https://www.cnblogs.com/cyj7/p/4844708.html