質問
私は今、レーキのファイルタスクについて学んでいます。 10個ほどのファイルに連結されるJavaScriptソースファイルが数百個あります。この種のマッピングは、ファイルタスクでインテリジェントに実行できると思います。すべてのファイルを指定する必要があるようです。
これらのすべてのJavaScriptファイルを再帰的に見つけて、右側の連結ファイルと比較するファイルタスクを作成する効率的な方法はありますか?連結部分はトリッキーなステップであり、Rubyでそれを取得できるまで、現時点でカスタムビルドツールによって行われています。
例えば、
/a.js
/c.js -----------> base.js
/geo/b.js
/geo/c.js -----------> geo.js
/mod/d.js
/mod/e.js -----------> mod.js
解決
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
自分の方法、明らかに(私の例では、最初の引数はファイルのリストであり、2番目は宛先ファイルです。 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[...]
それも。
他のヒント
このレーキファイルタスクを呼び出す方法は?
%w(geo mod xyz abc).each do |module|
file "#{module}.js" => Dir["#{module}/*.js"] do |t|
# some code
end
end
レーキ????
所属していません StackOverflow