我能直接在node.js中运行.coffee文件吗?

26

我正在做一些教程,并且全部使用CoffeeScript编写。然后我需要先将其编译为JS,然后才能在node.js中执行。有没有直接执行的方法?


请参考Trevor Burnham在这个问题中的回答。 - Ray Toal
2个回答

56

是的,你可以。

coffee source.coffee -n

它将直接运行Node,而不生成任何.js文件。

参考资料

更新: Coffee现在也支持--nodejs。以上代码与下面的代码相同:

coffee source.coffee --nodejs

但是,-n 更短。

好的;我假定 -n 只是传递给调用脚本的示例参数,对吗? - mklement0
@arvidkahl 阅读了文档,似乎 --nodejs 只是传递 node 选项的前缀。今晚会测试一下,谢谢。 - yujingz
@arvidkahl --nodejs 可以工作并且能够做更多的事情。但是如果你只想简单地执行,-n 更短 :) - yujingz
嘿@EricW,我理解了,也许我的先前陈述有误导性。我只是想说-n更短,并不意味着它是--nodejs的缩写。 - yujingz
我认为选项应该在文件之前,因此这个答案本质上与“$ coffee source.coffee”相同。 - Pencilcheck
显示剩余2条评论

34
如果您已经安装了npm,可以在node提示符下使用它来安装coffeescript:http://jashkenas.github.com/coffeescript/#installation 然后,从node提示符下,您可以直接使用coffee命令来执行:
coffee <yourcoffeescriptfile>.coffee

而且,如果只想编译,请传递-c标志:

coffee -c <yourcoffeescriptfile>.coffee

8
请注意,您可以在Node模块中使用require('./foo')引入foo.coffee,前提是您已经运行了require('coffee-script')(当您从coffee命令运行Node时将自动获取它);它会向require函数添加一个钩子。因此,在Node应用程序中混合和匹配.coffee.js文件非常简单。 - Trevor Burnham
关于使用 -c 的更多信息:编译结果将保存到与输入文件相同的文件夹中具有相同文件名根的 .js 文件中,除非使用 -o 指定不同的文件夹。使用 -p 将生成的 JavaScript 打印到 stdout,运行 coffee -h 查看所有选项。 - mklement0
仓库已更名为 coffeescript,因此链接应为 https://github.com/jashkenas/coffeescript/#installation。 - Linh Dam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接