Gruntfile多任务配置+自动刷新!

这份是复制的压缩科普问题!

module.exports = function(grunt){    // 项目配置    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        uglify: {
            options: {
                banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'//添加banner            },
            builda: {//任务一:压缩a.js,不混淆变量名,保留注释,添加banner和footer                options: {
                    mangle: false, //不混淆变量名
                    preserveComments: 'all', //不删除注释,还可以为 false(删除全部注释),some(保留@preserve @license @cc_on等注释)
                    footer:'\n/*! <%= pkg.name %> 最后修改于: <%= grunt.template.today("yyyy-mm-dd") %> */'//添加footer                },
                files: {                    'output/js/a.min.js': ['js/a.js']
                }
            },
            buildb:{//任务二:压缩b.js,输出压缩信息                options: {
                    report: "min"//输出压缩率,可选的值有 false(不输出信息),gzip                },
                files: {                    'output/js/b.min.js': ['js/main/b.js']
                }
            },
            buildall: {//任务三:按原文件结构压缩js文件夹内所有JS文件                files: [{
                    expand:true,
                    cwd:'js',//js目录下
                    src:'**/*.js',//所有js文件
                    dest: 'output/js'//输出到此目录下                }]
            },
            release: {//任务四:合并压缩a.js和b.js                files: {                    'output/js/index.min.js': ['js/a.js', 'js/main/b.js']
                }
            }
        }
    });    // 加载提供"uglify"任务的插件
    grunt.loadNpmTasks('grunt-contrib-uglify');    // 默认任务
    grunt.registerTask('default', ['uglify:release']);
    grunt.registerTask('mina', ['uglify:builda']);
    grunt.registerTask('minb', ['uglify:buildb']);
    grunt.registerTask('minall', ['uglify:buildall']);
}

多任务配置文件自动更新

const path = require('path')
module.exports = function (grunt) {
  require("load-grunt-tasks")(grunt); // npm install --save-dev load-grunt-tasks
  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    watch: {
      scripts: {
        files: ['src/js/*.js'],
        options: {
          spawn: false,
        },
      }
    },
    concat: {
      foo: {
        // concat task "foo" target options and files go here.
      },
      load: { // load图片js
        src: ['src/js/load/*.js'],
        dest: 'app/basic/js/load.js'
      },
    },
    uglify: {
      options: {
      //  mangle: false,  是否混淆变量名 默认true
        banner: '/* \n* <%= pkg.link %>\n* @Author:<%= pkg.author %>  \n* @LastEditTime :<%= grunt.template.today("yyyy-mm-dd") %>\n */\n'
      },
      load: {// load图片压缩min.js
        files: {
          '<%= pkg.outputPath %>/js/load.min.js': '<%= pkg.outputPath %>/js/load.js'
        }
      }

    }
  });

  // 加载包含 "uglify" 任务的插件。
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-browser-sync');
  // 默认被执行的任务列表。
  grunt.registerTask('default', ['concat', 'uglify', 'watch']);

};


相关内容

发表评论

验证码:
点击我更换图片

最新评论