我正在用 PHP 为服务器端和 Ember.js 为客户端构建一个项目。
我已经在 CoffeScript 中编写了所有脚本,在 .hbs 文件中编写了模板,在 .scss 文件中编写了样式,现在我使用 rake-pipeline 来编译所有脚本,但我有几个问题:
- 如何组织依赖关系
- 如何在其他文件中包含脚本
- 如何确定脚本的顺序
现在我有一个硬编码 AssetFile 用于对最终 .js 文件中的脚本进行排序,但我的应用程序变得更加复杂,一些文件需要增长并拆分为更多文件,但我遇到了之前提到的问题。
资产文件
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文件时给出正确的顺序,我在rails中看到了一些项目并require
在.coffe文件中使用了这句话,但不知道如何让rake-pipeline理解这句话.