【发布时间】:2023-12-23 01:57:01
【问题描述】:
我希望 capistrano 使用 --trace 调用 rake,以便找出失败的原因。我该怎么做呢? set :rake 'rake --trace' 不起作用。
【问题讨论】:
-
当你说“不起作用”时,会发生什么?
标签: ruby rake capistrano
我希望 capistrano 使用 --trace 调用 rake,以便找出失败的原因。我该怎么做呢? set :rake 'rake --trace' 不起作用。
【问题讨论】:
标签: ruby rake capistrano
我发现的最好方法是:
set :rake, "#{rake} --trace"
这样您就不会覆盖 rake 变量。
例如,如果您使用 bundler,则之前设置为:
"bundle exec rake"
之后:
"bundle exec rake --trace"
【讨论】:
您的自定义任务可能没有使用 rake 变量,而是使用硬编码 rake,这是一个示例:
run("rake sass:compile")
这是硬编码的,不会关心你的设置set :rake, 'rake --trace',这是正确的方法:
run("#{fetch(:rake)} sass:compile")
或者,简写:
run("#{rake} sass:compile")
您可以在 Capistrano 源代码的实践中看到这一点,在默认配方实际调用 rake 的地方,在迁移任务中:https://github.com/capistrano/capistrano/blob/master/lib/capistrano/recipes/deploy.rb#L387
【讨论】: