2012-07-20 46 views
4

我想知道是否有可能使用2.0.2(或trunk)將所有的assets/*.coffee文件編譯成一個定義的(如app.js & app.min.js)文件,因此不使用本地編譯器?將CoffeeScript文件編譯成一個js文件?

感謝您的幫助! :)

+0

你是什麼由本地編譯器的意思是,和你想改用什麼? – Thilo 2012-07-20 12:30:39

+0

Play框架提供了一個集成的CoffeeScript編譯器,我想使用它,但我不知道如果使用這個編譯器,我可以將所有* .coffee編譯成一個。我發現的建議解決方案是使用本機編譯器,我想避免這種編譯器。 – 2012-07-20 12:31:40

+1

我也不明白「native編譯器」是什麼意思,但咖啡有'-c'參數可以編譯,'-j'可以將結果加入到一個文件中。在這裏,我這樣做: '咖啡-cj ./js/game.js。/咖啡' – skovalyov 2012-07-20 12:34:15

回答

0

不能只寫一個構建腳本或使用cakefile?沿此線的東西:

fs = require 'fs' 
{exec} require 'child_process' 

fs.readdir 'path/to/coffee/', (err, files) -> 
    concat_result = '' 
    concat_file = 'path/to/concat_file.coffee' 
    for file in files 
     concat_result += fs.readFileSync file, 'utf8' 

    concat_file = fs.writeFile concat_file, concat_result 
    exec "whatever_compiler -c -o path/to/outfile #{concat_file}", (err, stdout, stderr) -> 
     #handle errs 
1

因爲斯卡拉CoffeeScript的過程似乎在此刻,支持唯一的選擇就是「裸」(http://www.playframework.com/documentation/2.0.2/AssetsCoffeeScript#options),你可能必須有一個封裝了您的coffeescripts過程然後將它們放在適當的文件中。你可以用grunt來完成那個任務。和插件咕嚕-的contrib咖啡來處理文件

coffee: 
    compile: 
    files: 
     'app/assets/app.js': [ 
     'file1.coffee' 
     'file2.coffee' 
     ] 

會爲了編譯這些SRC文件,並將編譯的文件在app /資產/ app.js應由發揮得到回升。

咕嚕-的contrib咖啡:https://github.com/gruntjs/grunt-contrib-coffee

相關問題