私はすべての私のcoffeescriptファイルを私のレール3.1アセットパイプラインウェブサイトにまとめて、開発ページがより速く読み込まれるようにしようとしています。私は28秒から6秒です。しかし、以前はユニークなローカル関数名がすべて同じファイルにあり、重複していました。私は同じ関数名を維持したいが、ある種の名前空間内で維持したい。2つ以上のcoffeescriptファイルを重複する関数名と一緒にマージするにはどうすればよいですか?
ここにいくつかのサンプルファイルがあります。
ファイルa.js.coffee
root = exports ? this
$(document).ready ->
sayHi()
root.sayHi = ->
greeting()
greeting = ->
alert("Howdy")
ファイルb.js.coffee
root = exports ? this
$(document).ready ->
sayHello()
root.sayHello = ->
greeting()
greeting = ->
alert("Hi there")
は、どのように私は一緒にこれらの2つのファイルの内容を参加し、まだ二つの別々のgreeting
の機能を保つことができますか?
#------------------
# from a.js.coffee
#------------------
root = exports ? this
$(document).ready ->
sayHi()
root.sayHi = ->
greeting()
greeting = ->
alert("Howdy")
#------------------
# from b.js.coffee
#------------------
root = exports ? this
$(document).ready ->
sayHello()
root.sayHello = ->
greeting()
greeting = ->
alert("Hi there")
ファイルにどのように参加していますか?デフォルトでは、コーヒーはIIFE( '(function(){...)()'で各ファイルをラップして、それらの衝突を回避します。 –
個々のcoffeescriptファイルの内容を1つの大きなファイルに物理的にコピーしています。私の開発マシン上のRailsサーバーは、各ファイルを個別にページをレンダリングするには時間がかかりすぎています。マージする前に1ページを終了するのに28秒かかりました。マージ後には4秒しかかかりません。 –