前言:
今天你们对“phpjs压缩”大致比较关注,我们都想要了解一些“phpjs压缩”的相关资讯。那么小编在网络上收集了一些关于“phpjs压缩””的相关文章,希望同学们能喜欢,同学们快快来了解一下吧!由于前段时间发布的云静Admin-通用后台框架,涉及的功能模块大部分是由js实现的,所以小编想统一将这些文件进行压缩处理,以减少加载静态资源造成的网络延迟,提高页面打开的响应速度。
云静Admin-通用后台预览:
开发文档:
鉴于该框架构建于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);}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #phpjs压缩