2011-11-24 72 views
4

由於我們可以使用各種解釋器(如V8或Rhino)運行JavaScript,因此我認爲應該有辦法在終端中運行CoffeeScript代碼。有沒有辦法在終端本身運行CoffeeScript?

從技術上講,我可以通過在運行JavaScript時使用Node.js來實現,但我很好奇是否有專門爲CoffeeScript設計的獨立解釋器。

回答

5

不可以。您可以使用coffee filename啓動一個coffeescript文件,但這隻會編譯內存中的coffeescript文件並將其作爲javascript運行。呃,實際上有人爲coffeescript寫了一個解釋器,但是這個解釋器是用javascript或coffeescript編寫的,因此也必須在JS引擎中運行。而且,它的速度很慢,因爲它是一個解釋器而不是JIT編譯器。

正如我所說的,只需使用coffee命令。

4

據我所知,只有一個CoffeeScript解釋器不能編譯成JavaScript:Poetics

它用純Ruby編寫,直接在Rubinius VM上運行CoffeeScript代碼。但是,自從5月份以來它一直沒有更新,而且與官方的CoffeeScript實現完全不同。

+0

我想我也看到了一個純粹的JS一個對GH和咖啡郵件列表。 – thejh

9

簡單地安裝和運行CoffeeScript自帶的解釋器有什麼問題?

在這裏閱讀本指南的安裝部分:http://jashkenas.github.com/coffee-script/#installation

,然後用它是這樣的:

enter image description here

還是我失去了你的問題的某些方面?

+0

我相信提問者正在尋找一種運行CoffeeScript而不使用JS作爲中間語言的方法,當然''咖啡'在後臺執行。 –

2

如果你不想跑與coffee命令腳本,您可以在hashbang隨時添加到腳本頂部:

#!/usr/local/bin/coffee 

只要將文件設置爲可執行文件( chmod +x foo.coffee),現在你可以無需在終端指定的coffee命令運行它:

$ ./foo.coffee 
+0

這似乎沒有實際的工作。它仍然由於某種原因被解釋爲bash。你能證實這對你有用嗎?謝謝 – thebuckst0p

+1

這真的讓我發瘋 - 它不工作。爲什麼??我不知道。我找到的解決方案是說'#!/ usr/bin/env node/path/to/coffee-script/bin/coffee',這是一件令人討厭的事情。 – flow

+0

它不適用於我..在Mac OS 10.9.2上運行 – JustGoscha

2

不能直接使用coffee作爲一個腳本解釋器,因爲它已經是一個腳本。但是你可以通過編寫一個簡單的C包裝解決這個問題:

#include <unistd.h> 

int main(int argc, char *argv[]) { 
    execvp("coffee", argv); 
} 

編譯,並把它放在你的PATH的地方(我把它叫做klatsh),然後把#!/usr/bin/env klatsh在頂部(或任何你叫它)您腳本,你很好去。

1

是,只需使用:

$ coffee test.coffee 
Output from coffee! 
相關問題