在 rake 规则中指定任务依赖性

Specifying a task-dependency in a rake rule

我有一个转换文件的 rake 规则,它也需要依赖于 :environment (meta-) 任务。但是,我一直 运行 出错。规则如下所示:

task :parse => SOURCE_FILES.ext(".md")
rule ".md" => ->(f){ source_for_md(f) } do |t|
  `do stuff ${t.source}`
end

我试过了rule ".md" => [:environment, ->(f){ source_for_md(f)] }

导致错误:

Don't know how to handle rule dependent: :environment

我也尝试在 :parse 任务中定义上游依赖:

task parse: [:environment, SOURCE_FILES.ext(".md")]

...运气不好。

一个稍微不优雅的解决方法:将依赖项在链中进一步向上移动:

task do_parse: [:environment, :parse]
task :parse => SOURCE_FILES.ext(".md")
rule ".md" => ->(f){ source_for_md(f) } do |t|
  `do stuff ${t.source}`
end