高级? Rake文件任务的规则

时间:2010-12-18 04:04:45

标签: rake rake-task

我没有成功地试图结合我的一些主要冗余的Rake文件任务。甚至指导我一些关于rake规则的文档也很棒,我发现很少。

我发现的所有示例都是通过扩展名来区分的文件,在我的情况下,我需要更具体的内容。

file '.../bundle-a.js' => ['a.js','b.js','c.js']

file '.../bundle-b.js' => ['d.js','e.js','f.js']

rule ??? => ??? do |f|
   File.open( f.name, 'w' ) do |of|
       of.write cat(f.prerequisites).concat('SPECIFIC TEXT TO EACH BUNDLE')
   end
end

如果我对.js =>执行规则.js,我得到递归错误。如果我查找/ bundle /,它会失败或者我不理解发生的处理。另外,我需要添加关于特定文本的那部分,是否有通过规则的解决方案?

1 个答案:

答案 0 :(得分:0)

您可以在模式中使用Regexps,在依赖项中使用Procs。 Procs接收文件名作为参数,并应返回文件名或文件名数组。

rule %r{\A.../bundle-(.*)\.js\z} => proc{|fn| required_files_for(fn) } do |f|
  ...
end

如果使用“.js”作为目标,使用“.js”作为依赖项,则意味着可以从自身构建js文件,这是一个递归规则。

相关问题