开源作品-PHP写的JS和CSS文件压缩利器-SuMinify_PHP_1_5

前言:

网站项目需要引用外部文件以减小加载流量,而且第一次加载外部资源文件后,其他同域名的页面如果引用相同的地址,可以利用浏览器缓存直接读取本地缓存资源文件,而不需要每个页面都下载相同的外部资源文件。外部资源文件有一些是第三方插件,有一些是自己写的业务功能脚本,项目引用这些外部文件,需要把没有压缩过的第三方插件压缩后再引用,而自己的业务功能脚本,有的做成插件形式,引用一个功能脚本,需要同时引用若干个脚本文件,因此需要把这些脚本文件合并成一个压缩文件再引用,这样可以减少HTTP请求次数,减少这些外部资源文件的加载流量。
为了实现这些目标,自己原来的步骤是:在目标路径新建.min.xxx文件 》 打开提供在线js/css压缩服务的网站,把源码复制进去在线压缩,然后拷贝出来,粘帖到.min.xxx文件, 如果需要合并文件,则把多个文件的源码复制,压缩,粘帖到同一个.min.xxx文件。但是随着项目的进展,功能越来越多,需要引用的文件也越来越多,每次改动一个外部源文件,都要折腾很多精力才能把.min.xxx文件更新好,特别是源文件分布在不同的目录下,为了寻找这些目录也是挺费心的。所以产生了做一个自动化压缩合并的小程序的想法,只要运行这个程序,就能帮我把这些繁琐的重复劳动完成。

简介:
SuMinify_PHP是一个用于压缩或合并网站项目中的js文件或css文件的单文件绿色版PHP程序,和phpinfo.php一样可以方便放到项目中使用。
开发网站项目过程中,js文件经常是分布在各个不同的目录中,如第三方插件、自己写的插件等,一般会把多个Javascript插件压缩后合并到一个文件中供项目引用,以减少http请求次数。
如果手工操作,每次插件改动的时候,都要花费很多精力来压缩和合并文件,有了这个自动化程序,就可以把项目中的外部资源文件根据规则写成一个自动化配置,然后每次改动文件后,只要运行SuMinify程序,就可以根据规则帮你把文件压缩或合并到指定目录,省去了费心费力的体力劳动,提高了工作效率~

特性:
1、单文件绿色版,无外部依赖,方便部署使用
2、支持多个项目快速切换
3、根据规则写好配置文件,能根据配置文件自动从源码路径中读取源码并压缩,输出到到指定的.min压缩文件
4、项目的规则配置文件能放再任意路径中
5、合并不同目录中的多个文件的内容到一个文件中
6、对整个目录进行就地批量压缩,比如目录中有若干文件,则只要填好目录路径,就能自动遍历目录中的文件,并以每个文件名+.min.后缀的格式生成压缩后的文件
7、将整个目录的资源文件进行压缩后,合并到一个指定路径的.min文件中
8、整个目录就地批量压缩的时候,自动忽略.min文件,防止重复压缩

使用:
1. 将SuMinify_PHP_1_5文件复制到您的项目中任意目录(本文件为单文件绿色版,方便使用^_^).
2. 修改配置内容为适合您需要的规则.
3. 运行本文件,生成成功后,就可以查看并使用您的成果了~

帮助:

$config = array(
    // soui_v3a项目
    ‘soui_v3a‘ => ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\soui_v3a_config.php‘,
    // soui_v3b项目
    ‘soui_v3b‘ => array(
        ‘js‘ => array(
            ‘in-place-minify‘ => array(// 就地压缩js
                ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\superfish\superfish.js‘, // 就地生成superfish.min.js文件
                array(‘path‘ => ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\Pages\*‘, ‘skips‘ => array(‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\Pages\skip-me1.js‘, ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\Pages\skip-me2.js‘)), // 整个目录就地压缩,跳过其中2个文件的压缩
            ),
            ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\min\jquery.easyui.min.js‘ => array(
                array(‘path‘ => ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\easyui\jquery.easyui.min.js‘, ‘minify‘ => false), // 不用压缩,直接合并
                ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\easyui\locale\easyui-lang-zh_CN.js‘, // 压缩后合并
            ),
            ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\min\pages.min.js‘ => array(
                array(‘path‘ => ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\Pages\*‘), // 将目录中所有文件压缩后合并
                ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Javascript\js-prototype-extension.js‘, // 压缩后合并
                ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Plugin\jquery-audioplayer-1.0\jquery-audioPlayer-1.0.js‘, // 压缩后合并
            )
        ),
        ‘css‘ => array(
            ‘in-place-minify‘ => array(// 就地压缩css
                ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\Pages\*‘, // 整个目录就地压缩
            ),
            ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\jeasyui\Default\easyui.min.css‘ => array(
                ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\jeasyui\Default\easyui.css‘, // 压缩后合并
                array(‘path‘ => ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\jeasyui\icon.css‘, ‘replaces‘ => array("‘icons/" => "‘../Icons/")), // 压缩后替换内容,然后合并
            ),
            ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\superfish\superfish.min.css‘ => array(
                ‘F:\OpenOpus\SuMinify_PHP_1_5\Example\Resfile\Css\superfish\superfish.css‘, // 就地压缩
            ),
        )
    ),
);

运行效果图:

主页:http://git.oschina.net/sutroon/SuMinify_PHP_1_5

源码:https://git.oschina.net/sutroon/SuMinify_PHP_1_5.git

时间: 2024-10-18 08:34:44

开源作品-PHP写的JS和CSS文件压缩利器-SuMinify_PHP_1_5的相关文章

webstorm之js,css文件压缩

不说废话了,代码压缩是每个网站上线前的必备过程,但由于有时候小的项目或者加急的项目每次都构建一次类似gulp或者grunt等前端部署,实在是大题小做,所以才有了今天这个帖子: 我们会用到yui compressor 的jar包,已放入百度云,下载地址:http://pan.baidu.com/s/1o67tnB0 一:添加css压缩: 1.选择设置: 2.选择工具中的file Watchers选项 3.点击右侧的加号,选择YUI Compressor CSS选项 4.看图中所示位置选择下载的ja

js和css文件压缩

压缩网址 http://tool.chinaz.com/tools/jscodeconfusion.aspx http://tool.oschina.net/jscompress?type=3 http://tool.lu/js/

gulp-rev同时将js和css文件写在一个rev-manifest.json文件里面的方式探讨

参考: https://segmentfault.com/q/1010000002876613 https://github.com/sindresorhus/gulp-rev 测试发现,在官网上最主要的做法是: 加入如下参数: { base: 'build/assets', merge: true } 其中base为存放上一个生成的rev-manifest.json文件,然后merge为是否拼合进去,最后再输出到base这个目录上,就可以实现js和css文件同在一个rev-manifest.j

2个方法通过字[符串参数]加载外部js和css文件

Java语言的异常处理机制可以去确保程序的健壮性,提高系统的可用率,但是Java API提供的异常都是比较低级的(这里的低级是指 " 低级别的 " 异常),只有开发人员才能看的懂,才明白发生了什么问题.而对于终端用户来说,这些异常基本上就是天书,与业务无关,是纯计算机语言的描述,那该怎么办?这就需要我们对异常进行封装了. 近年来,深度学习的研究越来越深入,在各个领域也都获得了不少突破性的进展.基于注意力(attention)机制的神经网络成为了最近神经网络研究的一个热点,本人最近也学习

后台修改js或者css文件之后,客户端刷新但是无效的问题

前端开发会遇到一个问题:修改测试前端代码的时候,有时候修改了css或者js文件,但是前端刷新的时候却没有反应,不免让人感觉是不是修改错误,其实这有可能是客户端缓存问题.解决方法: 1)Ctrl+F5,清除浏览器缓存(等同于浏览器-->历史数据-->删除cookies) 2)在js或css后加版本号,这时候浏览器客户端会认为这是不同版本的js或者css文件,会自动重新刷新下载(浏览器会缓存下载页面js和css文件) 2.1)形如:.css?v=x  或者 css?version=x     &l

使用grunt合并压缩js、css文件

需要了解的知识: 1.nodejs的安装与命令行使用 2.nodejs安装应用 3.grunt的初步了解 本文已假定读者已经熟悉以上知识. 好,我们继续: 任务1:将src目录下的所有zepto及插件合并,并压缩. --src/ ajax.js assets.js callbacks.js data.js deferred.js detect.js event.js form.js fx.js fx_methods.js gesture.js ie.js ios3.js selector.js

将js和css文件装入localStorage加速程序执行

原理如下: 一次批量加要加载的文件存入数组,采用Ajax方式异步载入各个文件,然后采用循环方式逐个执行下载下来的Js或者Css文件,如果已经被缓存(localStorage)的则省略下载过程. 由于JS采用的是单线程模式运行,在执行某一个js时会阻塞其它并发的js执行,所以会按顺序执行各个js.在执行完所有的脚本之后,图片会被浏览器接着 加载,所以第一次加载速度略慢,后面就会比较快了.在JQuery Mobile 1.4.5+FireFox/微信浏览器下实测效果不错,IE就被省略了,我主要是要在

引入JS和CSS文件加版本号的作用

形如: <script type="text/javascript" src="/resources/js/myFunction.js?version=0.1.0"></script> <link rel="stylesheet" type="text/css" href="/resources/css/styles/myLocation.css?version=0.1.0"

Django中载入js和css文件

Django中载入js和css文件 项目的文件夹结构例如以下: mysite |-mysite |-|-static |-|---js和css文件 |-|-|-init.py |-| |-models.py |-| |-views.py |-|-init.py |-|-settings.py |-|-urls.py |-templates |-|-(template html 文件) settings.py中static变量的设置: STATIC_ROOT = os.path.join(os.p