[英]Packing, caching, JS and CSS in PHP that differentiate between development and production environment
我正在努力使开发变得简单并且在生产中具有高度优化的输出。
我想要做的目标是:
注意:如果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>
在生产服务器上(如果不存在特殊cookie):
<script type="text/javascript" src="cache/12a42323bfe339ea9w.js"></script>
另一个函数: 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>
在生产服务器上(如果不存在特殊cookie):
<link href="/cache/46537a8b8e876f7a8e7.css" type="text/css" />
第二个参数指定是否应在开发服务器上输出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解析器...... )。
好问题!
我使用过具有类似要求的流程,但我们采取了一些不同的方法。 我意识到它可能并不完全是你所追求的,但仍会提出一些建议:
我意识到它与你的意图有点不同,但根据我的经验,它会导致更强大的开发促销模型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.