我没有成功地试图结合我的一些主要冗余的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 /,它会失败或者我不理解发生的处理。另外,我需要添加关于特定文本的那部分,是否有通过规则的解决方案?
答案 0 :(得分:0)
您可以在模式中使用Regexps,在依赖项中使用Procs。 Procs接收文件名作为参数,并应返回文件名或文件名数组。
rule %r{\A.../bundle-(.*)\.js\z} => proc{|fn| required_files_for(fn) } do |f|
...
end
如果使用“.js”作为目标,使用“.js”作为依赖项,则意味着可以从自身构建js文件,这是一个递归规则。