Domanda

Sono solo ora conoscere le attività di file in rake. Ho 100s di file sorgente JavaScript, che vengono concatenati per 10 o giù di lì i file. Vedo questo tipo di mappatura può essere fatto in modo intelligente con attività di file. Sembra è necessario specificare ogni file.

C'è un modo efficiente per scrivere un compito file in modo ricorsivo trova tutti questi file javascript e confrontarle con i file concatenati sul lato destro? La parte di concatenazione è un passo difficile e è stato fatto da uno strumento di generazione personalizzata al momento fino a quando posso ottenere che in Ruby.

Ad esempio,

/a.js
/c.js            -----------> base.js
/geo/b.js
/geo/c.js        -----------> geo.js
/mod/d.js
/mod/e.js        -----------> mod.js
È stato utile?

Soluzione

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

e così via, si dovrà implementare il metodo concatenate te stesso, ovviamente (nel mio esempio il primo argomento è l'elenco dei file e il secondo è il file di destinazione, ad esempio geo.js). Se tutti i file creati sono il nome di directory si può fare qualcosa di simile:

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

Se le directory possono essere globbed in qualche modo si potrebbe rendere ancora più dinamico, sostituendo l'elenco dei nomi delle directory con Dir[...] troppo.

Altri suggerimenti

Come richiamare questo compito file di rake?

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

rake ????

  
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top