这份是复制的压缩科普问题!
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']); };