zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    算法之递归
    初读 c# IL中间语言
    sql语句转为Model
    WPF-悬浮窗(类似于360)
    call,apply
    作用域题目
    css BFC
    数组扁平化 flatten
    常见的异步题
    setTimeout、Promise、Async/Await 的区别
  • 原文地址:https://www.cnblogs.com/mangoniki/p/5383240.html
Copyright © 2011-2022 走看看