質問

私は今、レーキのファイルタスクについて学んでいます。 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

レーキ????

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top