ionic如何uglify和minify你的js,css,image,png....
Install:
1.ionic start myapp blank
1.ionic start myapp blank
2.cd myapp
3.npm install cordova-uglify or npm install cordova-uglify --legacy-bundling
Useage:
1.找到hooks/uglify-config.json
2.将第一行代码"alwaysRun": false 改为"alwaysRun": true,
3.运行ionic platform add android,ionic build android
4.查看plaforms/android/assets/www/目录下的所有文件,是否uglify和minify
![图片](http://r.photo.store.qq.com/psb?/d83bcc2e-4be3-4f7c-9b51-bd42d52f4759/XB3XdpitiGT1PHwNqeooX6WpqL2daXdQdmXZk5Ggox0!/o/dAgBAAAAAAAA&ek=1&kp=1&pt=0&bo=rgNCAK4DQgADACU!&su=1130977761&sce=0-12-12&rf=2-9)
U福利:(自动js纠错功能)
1.安装:
npm install jshint
Useage:
1.找到hooks/uglify-config.json
2.将第一行代码"alwaysRun": false 改为"alwaysRun": true,
3.运行ionic platform add android,ionic build android
4.查看plaforms/android/assets/www/目录下的所有文件,是否uglify和minify
U福利:(自动js纠错功能)
1.安装:
npm install jshint
npm install async
2.手动新建文件
在hooks目录下新建文件夹“before_prepare”,该文件夹下新建文件“02_jshint.js”
将以下内容粘贴到新建文件里:
3.重新运行ionic build android
2.手动新建文件
在hooks目录下新建文件夹“before_prepare”,该文件夹下新建文件“02_jshint.js”
将以下内容粘贴到新建文件里:
1 #!/usr/bin/env node 2 3 var fs = require('fs'); 4 var path = require('path'); 5 var jshint = require('jshint').JSHINT; 6 var async = require('async'); 7 8 var foldersToProcess = [ 9 'js' 10 ]; 11 12 foldersToProcess.forEach(function(folder) { 13 processFiles("www/" + folder); 14 }); 15 16 function processFiles(dir, callback) { 17 var errorCount = 0; 18 fs.readdir(dir, function(err, list) { 19 if (err) { 20 console.log('processFiles err: ' + err); 21 return; 22 } 23 async.eachSeries(list, function(file, innercallback) { 24 file = dir + '/' + file; 25 fs.stat(file, function(err, stat) { 26 if(!stat.isDirectory()) { 27 if(path.extname(file) === ".js") { 28 lintFile(file, function(hasError) { 29 if(hasError) { 30 errorCount++; 31 } 32 innercallback(); 33 }); 34 } else { 35 innercallback(); 36 } 37 } else { 38 innercallback(); 39 } 40 }); 41 }, function(error) { 42 if(errorCount > 0) { 43 process.exit(1); 44 } 45 }); 46 }); 47 } 48 49 function lintFile(file, callback) { 50 console.log("Linting " + file); 51 fs.readFile(file, function(err, data) { 52 if(err) { 53 console.log('Error: ' + err); 54 return; 55 } 56 if(jshint(data.toString())) { 57 console.log('File ' + file + ' has no errors.'); 58 console.log('-----------------------------------------'); 59 callback(false); 60 } else { 61 console.log('Errors in file ' + file); 62 var out = jshint.data(), 63 errors = out.errors; 64 for(var j = 0; j < errors.length; j++) { 65 console.log(errors[j].line + ':' + errors[j].character + ' -> ' + errors[j].reason + ' -> ' + 66 errors[j].evidence); 67 } 68 console.log('-----------------------------------------'); 69 callback(true); 70 } 71 }); 72 }
将在编译过程看到一下代码
![图片](http://r.photo.store.qq.com/psb?/d83bcc2e-4be3-4f7c-9b51-bd42d52f4759/BQ8YKfWSybD3qs7jTvzpKtnG1ubmY.MyeY4bg7YbLlk!/o/dFcBAAAAAAAA&ek=1&kp=1&pt=0&bo=iQIiAYkCIgEDACU!&su=178112721&sce=0-12-12&rf=2-9)
表示你的js代码没有错误!
表示你的js代码没有错误!