2012-03-01 8 views
2

私はmy_func.coffeeファイル
私は、コマンドラインから「第2」メソッドを呼び出すことができますどのようにコーヒースクリプトファイルのコマンドラインからメソッドを実行するにはどうすればよいですか?

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

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

がありますか?おそらく、ここで物事のカップルを混合している

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

答えて

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.coffeeを持っているので、あなたがコンパイルしたMyMod.jsファイルを削除する場合は、行うことができます:

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

は、同じ出力を得るために。それはもちろん、スクリプトモジュールがインストールされていることを前提としています。

更新:

また、直接coffee実行可能ファイルを実行することができます

coffee -e 'm = require("./MyMod"); m.second("abcff")' 
関連する問題