Grunt 插件详解 【grunt-contrib-uglify】

一、作用

  主要用于JavaScript代码的压缩与混淆。

二、下载安装

1.下载模块

npm install grunt-contrib-uglify --save-dev

2.加载模块

grunt.loadNpmTasks('grunt-contirb-uglify');

3.整体配置(Gruntfile.js)

 1 module.exports = function(grunt) {
 2 
 3     //grunt运行配置
 4     grunt.initConfig({
 5 
 6         //读取package.json配置
 7         pkg: grunt.file.readJSON("package.json"),
 8         
 9         //配置uglify任务
10         uglify: {
11             ...
12         }
13     });
14 
15     //加载grunt-contrib-uglify模块
16     grunt.loadNpmTasks('grunt-contrib-uglify');
17 
18     //将uglify任务注册到默认指令中
19     grunt.registerTask("default", ['uglify']);
20 };

三、uglify任务配置

 1 module.exports = function(grunt) {
 2 
 3     //grunt运行配置
 4     grunt.initConfig({
 5 
 6         //读取package.json配置
 7         pkg: grunt.file.readJSON("package.json"),
 8 
 9         //配置uglify任务
10         uglify: {
11             options: {
12                 banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */
' //注释名称
13             },
14             build_a: {
15                 options: {
16                     mangle: true, //是否混淆
17                     preserveComments: 'all', //不删除注释,还可以为 false(删除全部注释),some(保留@preserve @license @cc_on等注释)
18                     footer: '
/*! <%= pkg.name %> 最后修改于: <%= grunt.template.today("yyyy-mm-dd") %> */' //添加footer
19                 },
20                 files: {
21                     'dist/<%= pkg.name %>.min.js': ['src/index.js', 'src/login.js']
22                 }
23             },
24             build_b: {
25                 options: {
26                     report: "min", //输出压缩率,可选的值有 false(不输出信息),gzip
27                     beautify: { //是否格式显示
28                          80,
29                         beautify: false
30                     }
31                 },
32                 files: {
33                     'dist/<%= pkg.name %>.min.js': ['src/index.js']
34                 }
35             },
36             build_all: { //按原文件结构压缩js文件夹内所有JS文件
37                 files: [{
38                     expand: true,
39                     cwd: 'src', //js目录下
40                     src: '**/*.js', //所有js文件
41                     dest: 'dist' //输出到此目录下
42                 }]
43             },
44             release: { //合并压缩a.js和b.js
45                 files: {
46                     'dist/<%= pkg.name %>.min.js': ['src/index.js', 'src/login.js']
47                 }
48             }
49         }
50 
51     });
52 
53     //加载grunt-contrib-uglify模块
54     grunt.loadNpmTasks('grunt-contrib-uglify');
55 
56     //将uglify任务注册到默认指令中
57     grunt.registerTask('builda', ['uglify:build_a']);
58     grunt.registerTask('buildb', ['uglify:build_b']);
59     grunt.registerTask('buildall', ['uglify:build_all']);
60     grunt.registerTask('buildrelease', ['uglify:release']);
61 
62 };

 

 参考文章:http://www.cnblogs.com/artwl/p/3449303.html

原文地址:https://www.cnblogs.com/mangoniki/p/5383240.html