如何从我的咖啡脚本文件中的命令行运行方法?

时间:2012-03-01 11:05:16

标签: coffeescript

我有my_func.coffee文件

first = (test) ->
  console.log 'first' + test

second = (test) ->
  console.log 'second' + test

如何从命令行调用'second'方法?
有这样的东西会很好:

coffee my_func.coffee -e "second('test')"

1 个答案:

答案 0 :(得分:4)

你可能在这里混淆了几件事。 Coffeescript是编译器,它将coffeescript转换为javascript。 coffeescript的eval选项告诉它读取要从命令行编译的源代码,而不是执行它。

要执行代码,您需要在某种javascript环境中运行它。 Node.js是一个受欢迎的选择。首先,创建您的coffeescript模块,将其称为MyMod.coffe,如下所示:

module = do ->
  first: (test) ->
    console.log 'first' + test

  second: (test) ->
    console.log 'second' + test

console.log "MyMod registered", module

exports.first = module.first
exports.second = module.second

有一些额外的代码可以将该代码导出为javascript模块。使用coffee -c MyMod.coffee进行编译。

然后您可以从命令行执行它,例如:

node -e 'var m=require("./MyMod");m.second("abcff");'

你应该得到这个:

MyMod registered { first: [Function], second: [Function] }
secondabcff

更新

似乎你可以直接运行coffeescript。如果删除已编译的MyMod.js文件以便只放置MyMod.coffee,则可以执行以下操作:

node -e 'require("coffee-script");var m=require("./MyMod");m.second("abcff");'

获得相同的输出。这假定当然安装了coffee-script模块。

<强>更新

您也可以直接运行coffee可执行文件:

coffee -e 'm = require("./MyMod"); m.second("abcff")'
相关问题