サーバー側にPHP、クライアント側にEmber.jsを使用してプロジェクトを構築しています。
すべてのスクリプトを CoffeScript で、テンプレートを .hbs ファイルに、スタイル用に .scss ファイルを作成しました。今のところ、すべてをコンパイルするために rake-pipeline を使用していますが、いくつか問題があります。
- 依存関係を整理する方法
- 他のファイルにスクリプトを含める方法
- スクリプトの順序を決定する方法
今のところ、最終的な .js ファイルでスクリプトを並べ替えるためのハードコード AssetFile がありますが、アプリがより複雑になり、一部のファイルは成長してより多くのファイルに分割する必要がありますが、言及する前に問題があります。
AssetFile
output BUILD_DIR
input SRC_DIR do
match '**/*.handlebars' do
handlebars :precompile => true
concat '0.js'
end
match '**/lib/*.coffee' do
coffee_script
concat '1.js'
end
match '**/app.coffee' do
coffee_script
concat '2.js'
end
match '**/controller/*.coffee' do
coffee_script
concat '3.js'
end
end
私のプロジェクトのレイアウトは
Resources/
assets/
js/ # Are like my vendors (jquery, ember, etc...)
images/ # i copy this without process
styles/ # Here are .scss and .sass files
scripts/
templates/ # It's a directory tree with files .hbs
controller/ # Dirs with arbitrary names
lib/
...
main.coffee # main point, ej: App = Rkmax.App.create();App.initialize();
主な問題は、concat .js ファイルが coffee コンパイラによって生成されたときに正しい順序を与えることであることがわかります。レールでいくつかのプロジェクトを見て、require
.coffe ファイル内の文を使用していますが、rake-pipeline にこの文を理解させる方法がわかりません。 .