Chr*_*lli 20 javascript css php deployment optimization
我正在努力使开发变得简单并且在生产中具有高度优化的输出.
我想要做的目标是:
注意:如果Apachee模块和.htaccess文件显着加快了进程,则可以使用它们.但它应该能够快速设置它们,理想情况下只需要一个设置命令.
有没有做到这一点?或者什么是最好的资源开始?
我更喜欢一个由PHP脚本(最终几个.php文件,.htaccess和压缩可执行文件)组成的解决方案,它使用Google Closure Compiler压缩.JS并压缩/编译CSS/LESS文件,删除无用的注释和空格.可以在生产服务器上使用特殊cookie来输出开发版本.
我想拥有:
一个像以下那样可用的php函数:pack_js(['first.js','second.js','third.js']),它们写成:
在开发服务器上:
<script type="text/javascript" src="static/js/first.js"></script>
<script type="text/javascript" src="static/js/second.js"></script>
<script type="text/javascript" src="static/js/third.js"></script>
Run Code Online (Sandbox Code Playgroud)
在生产服务器上(如果不存在特殊cookie):
<script type="text/javascript" src="cache/12a42323bfe339ea9w.js"></script>
Run Code Online (Sandbox Code Playgroud)
另一个函数:pack_css(['first.less','second.less','third.css'],true)写下:
在开发服务器上:
<link rel="stylesheet/less" href="/static/css/first.less" type="text/css" />
<link rel="stylesheet/less" href="/static/css/second.less" type="text/css" />
<link href="/static/css/third.css" type="text/css" />
<script src="http://lesscss.googlecode.com/files/less-1.0.21.min.js"></script>
<script type="text/javascript" charset="utf-8">
less.env = "development";
less.watch();
</script>
Run Code Online (Sandbox Code Playgroud)
在生产服务器上(如果不存在特殊cookie):
<link href="/cache/46537a8b8e876f7a8e7.css" type="text/css" />
Run Code Online (Sandbox Code Playgroud)
第二个参数指定是否应在开发服务器上输出less.js
显然12a42323bfe339ea9w.js和46537a8b8e876f7a8e7.css是脚本的优化,打包和编译版本.此解决方案应该能够检测源文件何时更改并重新编译脚本以进行生产.它应该可以配置为关于脚本的位置和缓存类型(磁盘很好).理想情况下,pack_js应该可以选择在生产中对js进行延迟加载.
每个建议都受到欢迎.
仍在努力探索利用现有资源的最佳解决方案.
到目前为止CSS-JS-Booster和Turbine看起来是最好的起点:http://github.com/Schepp/CSS-JS-Booster和http://turbinecss.org/
为什么不使用项目构建系统将应用程序部署到执行此操作的生产服务器?对于 PHP,您可能会喜欢Phing,因为它允许您在 PHP 中编写额外的插件,以便您可以在部署时执行。您可能要考虑采取这条路线的其他选项是Ant和Capistrano(还有很多其他选项),但这些需要其他语言的知识(当然,如果您真的想的话,您可以从它们启动 php 解析器...... )。