将多个Coffeescript文件加入一个文件? (多个子目录)
我有一堆.coffee文件,我需要将它们合并到一个文件中。
我将文件夹设置为一个Rails应用程序:
/src/controller/log_controller.coffee
/src/model/log.coffee
/src/views/logs/new.coffee
Coffeescript有一个命令,可以让你将多个coffeescripts加入到一个文件中,但它似乎只能用于一个目录。 例如,这工作正常:
coffee --output app/controllers.js --join --compile src/controllers/*.coffee
但我需要能够包括一堆类似于这个非工作命令的子目录:
coffee --output app/all.js --join --compile src/*/*.coffee
有没有办法做到这一点? 是否有一种UNIXy方式来传递子目录中所有文件的列表?
我在OSX中使用终端。
它们都必须被加入到一个文件中,否则每个单独的文件都会被编译和包装:
(function() { }).call(this);
这打破了一些函数调用的范围。
你可以编写一个shell脚本或Rake任务,先将它们组合起来,然后编译。 就像是:
find . -type f -name '*.coffee' -print0 | xargs -0 cat > output.coffee
然后编译output.coffee
根据需要调整路径。 还要确保output.coffee
文件不在您用find
的相同路径中,否则您将进入无限循环。
http://man.cx/find | http://www.rubyrake.org/tutorial/index.html
另外,您可能对Stackoverflow上关于跨目录搜索的其他帖子感兴趣:
来自CoffeeScript文档:
-j,--join [FILE]:在编译之前,按所传递的顺序连接所有脚本,并将它们写入指定的文件中。 用于构建大型项目。
所以,你可以在命令行(我使用bash)实现你的目标:
coffee -cj path/to/compiled/file.js file1 file2 file3 file4
其中file1-fileN是要编译的咖啡脚本文件的路径。
我刚刚发布了CoffeeToaster的alpha版本,我认为它可以帮助你。 http://github.com/serpentem/coffee-toaster
链接地址: http://www.djcxy.com/p/97023.html上一篇: Join multiple Coffeescript files into one file? (Multiple subdirectories)