2012-10-24 40 views
1

我有以下结构:编译和连接的CoffeeScript文件

/lib 
/myfile.js.cofee 
/secondfile.js 
/src 

,我想将它们汇编成

/lib 
/myfile.js.cofee 
/secondfile.js 
/src 
/awesomefile.min.js 

我看了一下Cakefiles,但我不知道如何正是这样做。

谢谢, 迈克

回答

2

如果您恰好使用基于连接的东西(例如express),我推荐使用connect-assets。如果没有,那么grunt可能是一个很好的选择,正如之前的建议。如果你想自己用Cakefile这样做,可以使用下面的一种方法:

请注意,约定是从src创建到lib(这与你在问题中陈述的相反)。我将在下面使用该惯例,但如果需要,您可以轻松将其切换回来。

$ npm install snockets

发生在src/awesomefile.coffee如下:

#= require secondfile.js 
#= require myfile.js.coffee 

创建具有以下一个Cakefile

fs = require 'fs' 
Snockets = require 'snockets' 

NAME = 'awesomefile' 
INPUT_FILE = "src/#{NAME}.coffee" 
OUTPUT_FILE = "lib/#{NAME}.min.js" 

task 'build', 'Build lib/ from src/', -> 
    snockets = new Snockets() 
    js = snockets.getConcatenation INPUT_FILE, async: false, minify: true 
    fs.writeFileSync OUTPUT_FILE, js 

task 'clean', "remove #{OUTPUT_FILE}", -> 
    fs.unlinkSync OUTPUT_FILE 

现在,你可以这样做:

$ cake build

这将创建lib/awesomefile.min.js

您可以让src中的文件跟踪它们自己的依赖关系,或者您可以列出要包含在单个文件中的顺序,就像我上面所做的一样。如需更多信息,可以查看snockets存储库。另请注意,The Little Book on CoffeeScriptcompiling chapter章节是学习蛋糕文件的好资源。

+0

我正在编译从src到lib。我显然没有充分解释它。谢谢! –

1

可能不是你所期望的确切的答案。

www.gruntjs.com上的Grunt.js是一个非常有用的buildtool,当然包含了很多你需要每天使用webproject完成的工作。