0

我现在正在学习 Rake 中的文件任务。我有 100 个 javascript 源文件,它们连接到 10 个左右的文件。我看到这种映射可以通过文件任务智能地完成。看来您需要指定每个文件。

是否有一种有效的方法来编写递归查找所有这些 javascript 文件并将它们与右侧的连接文件进行比较的文件任务?连接部分是一个棘手的步骤,目前正在由自定义构建工具完成,直到我可以在 ruby​​ 中得到它。

例如,

/a.js
/c.js            -----------> base.js
/geo/b.js
/geo/c.js        -----------> geo.js
/mod/d.js
/mod/e.js        -----------> mod.js
4

2 回答 2

1
file 'base.js' => Dir['*.js'] do |t|
  concatenate t.prerequisites, t.name
end

file 'geo.js' => Dir['geo/*.js'] do |t|
  concatenate t.prerequisites, t.name
end

依此类推,concatenate显然,您必须自己实现该方法(在我的示例中,第一个参数是文件列表,第二个参数是目标文件,例如geo.js)。如果所有创建的文件都以目录命名,您可以执行以下操作:

%w(geo mod xyz abc).each do |module|
  file "#{module}.js" => Dir["#{module}/*.js"] do |t|
    concatenate t.prerequisites, t.name
  end
end

如果目录可以以某种方式被全局化,您可以通过替换目录名称列表来使其更加动态Dir[...]

于 2010-12-08T18:30:03.933 回答
0

如何调用这个 rake 文件任务?

%w(geo mod xyz abc).each do |module|
  file "#{module}.js" => Dir["#{module}/*.js"] do |t|
    # some code
  end
end

耙子???

于 2010-12-09T07:32:34.717 回答