我有以下结构:
/lib
/ myfile.js.cofee
/ secondfile.js
/src
我想把它们编译成
/lib
/ myfile.js.cofee
/ secondfile.js
/src
/ awesomefile.min.js
我已经阅读过 Cakefiles,但我不确定如何准确地做到这一点。
谢谢,迈克
我有以下结构:
/lib
/ myfile.js.cofee
/ secondfile.js
/src
我想把它们编译成
/lib
/ myfile.js.cofee
/ secondfile.js
/src
/ awesomefile.min.js
我已经阅读过 Cakefiles,但我不确定如何准确地做到这一点。
谢谢,迈克
如果您碰巧使用基于连接的东西(例如快递),我建议使用connect-assets。如果没有,那么grunt可能是一个不错的选择,正如之前所建议的那样。如果您想自己使用 a 来执行此操作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 CoffeeScript的编译章节是学习蛋糕文件的好资源。
可能不是您预期的确切答案。
www.gruntjs.com 上的 Grunt.js 是一个非常有用的构建工具,它当然包含很多您需要在 Web 项目中每天完成的工作。