雲靜Admin-通用後臺預覽:
http://uadmin.yunj.net.cn/admin
開發文件:
https://www.kancloud.cn/worklz/yunj_admin_universal/2009454
鑑於該框架構建於ThinkPHP上,所以決定使用php結合uglify來實現js檔案的批次壓縮。
實現前提:需安裝php和nodejs執行環境,及uglify-es(因為js涉及es6語法,方法:npm i uglify-es -g)
壓縮效果及部分指令碼原始碼截圖如下:
建立指令碼檔案uglifyjs.php(原始碼放在文章末尾)
使用方法:可在控制檯直接執行php uglifyjs.php來壓縮所有指定的js檔案,亦或指定壓縮js檔案陣列中的某些檔案,如壓縮form.js使用:php uglifyjs.php form.js即可
指令碼檔案uglifyjs.php完整原始碼如下:
<?php// 檔案處理function fileHandle($filename){ $newFilename=str_replace('.js','.min.js',$filename); exec("uglifyjs {$filename} -m -o {$newFilename}"); echo $filename."\n";}// js檔案陣列$path='public/static/yunj/js/';$arr1=glob("{$path}*.js");$arr2=glob("{$path}/modules/*.js");$arr3=glob("{$path}/modules/cols/templet/*.js");$arr4=glob("{$path}/modules/field/*.js");$arr5=glob("{$path}/modules/templet/*.js");$filenameArr=array_merge($arr1,$arr2,$arr3,$arr4,$arr5);// 指定修改的檔名,如:php uglifyjs.php form.jsunset($argv[0]);$updateFilenameArr=$argv;foreach ($filenameArr as $filename) { // 判斷是否壓縮檔案 if(strstr($filename,'.min.js')) continue; // 判斷是否置頂修改檔名 if($updateFilenameArr){ $isUpdateFilename=false; foreach ($updateFilenameArr as $updateFilename){ if(!strstr($filename,$updateFilename)) continue; $isUpdateFilename=true; break; } if(!$isUpdateFilename) continue; } fileHandle($filename);}
最新評論