1、做用html
主要用於JavaScript代碼的壓縮與混淆。npm
2、下載安裝json
1.下載模塊grunt
npm install grunt-contrib-uglify --save-dev
2.加載模塊ui
grunt.loadNpmTasks('grunt-contirb-uglify');
3.總體配置(Gruntfile.js)spa
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 };
3、uglify任務配置code
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") %> */\n' //註釋名稱 13 }, 14 build_a: { 15 options: { 16 mangle: true, //是否混淆 17 preserveComments: 'all', //不刪除註釋,還能夠爲 false(刪除所有註釋),some(保留@preserve @license @cc_on等註釋) 18 footer: '\n/*! <%= 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 width: 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 };