【问题标题】:How do I minify my source code before deployment如何在部署之前缩小我的源代码
【发布时间】:2011-12-28 00:25:48
【问题描述】:

我正在通过使用 capistrano 从 git 部署一个 php 项目。我目前正在通过一些 capistrano 任务来缩小我的 javascript(使用 jammit)和 css(使用 yui)。我看到的问题是我在目标服务器上进行此缩小,而不是在本地预先部署代码库。令人担忧的原因是我将 javascript 缩小从 yui 切换到 jammit,并且不想在我的部署服务器已经安装这个新的 ruby​​ gem 时在多个生产服务器上安装它。我从其他开发人员那里继承了 capistrano 文件,因此我不是 100% 清楚代码何时签出、何时发送到远程服务器以及我应该执行什么任务。

我最初的想法是这样做 before "deploy" 但同样,我不确定我是否有可用的源代码。

【问题讨论】:

    标签: git capistrano minify


    【解决方案1】:

    简短的回答是“你不知道”。 deploy 钩子调用 deploy:update_code

    部署:update_code,{:except=>{:no_release=>true}}

    将您的项目复制到远程服务器。这是任何部署的第一阶段;将更新的代码和资产移动到部署服务器。但是,您很少会直接调用此任务;相反,您应该调用 deploy’ task (to do a complete deploy) or the update' 任务(如果您想单独执行 `restart' 任务)。

    您需要确保将 :scm 变量设置为您正在使用的源代码控制软件(默认为 :subversion),并将 :deploy_via 变量设置为您要用于部署的策略(默认为:结帐)。

    一下子做到以下几点:

    1. 结帐代码
    2. 邮政编码
    3. 将代码移动到远程服务器
    4. 清理本地代码

    (根据您的部署设置有一些变化)。

    然而, 我能够通过使用下载和上传命令来解决这个问题。

    tmp_path = "/tmp/#{release_name}/public"
    download "#{current_path}/public/javascripts", "#{tmp_path}/javascripts/":via => :scp, :recurisve => true
    system "jammit -o #{tmp_path}/javascripts -c #{tmp_path}/javascripts/assets.yml"
    upload  "#{tmp_path}/javascripts/common.js", "#{current_path}/public/javascripts", :via => :scp
    system "rm -rf #{tmp_path}"
    

    我不喜欢它,因为它不太干净,但它可以按照我需要的方式完成工作。

    【讨论】:

      猜你喜欢
      • 2014-10-17
      • 2021-12-28
      • 1970-01-01
      • 2017-05-06
      • 2020-02-25
      • 1970-01-01
      • 2016-02-13
      • 1970-01-01
      • 2017-10-10
      相关资源
      最近更新 更多