2012-07-20 84 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

相关问题