使用Git在部署时压缩JS / CSS文件

时间:2012-12-03 17:27:31

标签: git deployment githooks minify

我对git有点新意。此外,这是我的第一个项目,我正在自动化部署过程。到目前为止,能够做git push dev并上传文件,复制配置文件等是幸福的。

现在我想在推送到我的开发服务器时缩小JS / CSS文件。我正在考虑在服务器上安装一些命令行工具,用于缩小某个文件夹上的每个js / css文件,压缩并保存在post-receive git hook上。

这是一个好方法吗? (因为我已经阅读过将压缩文件添加到repo以及其他我不太相信的想法)

如果是这样,哪种工具最适合这项任务?

3 个答案:

答案 0 :(得分:2)

http://git-scm.com/book/ch7-2.html

我假设您从不在服务器上进行提交,即服务器将用于结帐更新的主服务器并且永远不会更新它。这个技巧会在结账时自动缩小任何* .css文件:

# within repo
$ echo '*.css filter=minify' >> .git/info/attributes
$ git config filter.minify.clean  cat
$ git config filter.minify.smudge minify-command

minify-command应该是缩小* .css文件的命令,即

$ cat foo.css | minify-command > foo-minified.css

它接近你想要的吗?

答案 1 :(得分:0)

通过重写dev上的文件并且没有本地仓库中的缩小文件,这两个存储库将始终彼此不同步。

您可能想重新考虑将站点部署到dev的方式,而不是推送到dev,例如,您可能希望从prestine存储库中获取dev。

答案 2 :(得分:0)

也许你正在寻找添加一个post-checkout钩子(或者根据你的部署系统,它可能是另一个钩子),然后启动那个将缩小文件的脚本。

在执行此操作之前,您还可以使用挂钩检查相关文件的修改日期