• 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

  • 相关阅读:
    洛谷 P3178 [HAOI2015]树上操作
    『学习笔记』线段树合并(洛谷P4556)
    『学习笔记』树链剖分(洛谷P3384)
    洛谷 P6218 [USACO06NOV] Round Numbers S
    洛谷 P4999 烦人的数学作业
    洛谷 P4317 花神的数论题
    洛谷P2602 [ZJOI2010]数字计数
    WAMPServer多站点配置
    自定义网站根目录
    网络编程——服务器与多客户端通信
  • 原文地址:https://www.cnblogs.com/mangoniki/p/5383240.html
Copyright © 2020-2023  润新知