编译并加入coffeescript文件

时间:2012-10-24 13:17:39

标签: coffeescript cakefile

我有以下结构:

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

我希望将它们编译成

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

我读过有关Cakefiles的文章,但我不确定如何做到这一点。

谢谢, 麦克

2 个答案:

答案 0 :(得分:2)

如果您碰巧使用基于连接的内容(例如快递),我建议您使用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存储库。另请注意,compiling chapterThe Little Book on CoffeeScript章节是学习蛋糕文件的好资源。

答案 1 :(得分:1)

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

www.gruntjs.com上的Grunt.js是一个非常有用的构建工具,当然还包括你需要每天使用webproject做的很多东西。