由於我們可以使用各種解釋器(如V8或Rhino)運行JavaScript,因此我認爲應該有辦法在終端中運行CoffeeScript代碼。有沒有辦法在終端本身運行CoffeeScript?
從技術上講,我可以通過在運行JavaScript時使用Node.js來實現,但我很好奇是否有專門爲CoffeeScript設計的獨立解釋器。
由於我們可以使用各種解釋器(如V8或Rhino)運行JavaScript,因此我認爲應該有辦法在終端中運行CoffeeScript代碼。有沒有辦法在終端本身運行CoffeeScript?
從技術上講,我可以通過在運行JavaScript時使用Node.js來實現,但我很好奇是否有專門爲CoffeeScript設計的獨立解釋器。
不可以。您可以使用coffee filename
啓動一個coffeescript文件,但這隻會編譯內存中的coffeescript文件並將其作爲javascript運行。呃,實際上有人爲coffeescript寫了一個解釋器,但是這個解釋器是用javascript或coffeescript編寫的,因此也必須在JS引擎中運行。而且,它的速度很慢,因爲它是一個解釋器而不是JIT編譯器。
正如我所說的,只需使用coffee
命令。
據我所知,只有一個CoffeeScript解釋器不能編譯成JavaScript:Poetics。
它用純Ruby編寫,直接在Rubinius VM上運行CoffeeScript代碼。但是,自從5月份以來它一直沒有更新,而且與官方的CoffeeScript實現完全不同。
簡單地安裝和運行CoffeeScript自帶的解釋器有什麼問題?
在這裏閱讀本指南的安裝部分:http://jashkenas.github.com/coffee-script/#installation
,然後用它是這樣的:
還是我失去了你的問題的某些方面?
我相信提問者正在尋找一種運行CoffeeScript而不使用JS作爲中間語言的方法,當然''咖啡'在後臺執行。 –
如果你不想跑與coffee
命令腳本,您可以在hashbang隨時添加到腳本頂部:
#!/usr/local/bin/coffee
只要將文件設置爲可執行文件( chmod +x foo.coffee
),現在你可以無需在終端指定的coffee
命令運行它:
$ ./foo.coffee
這似乎沒有實際的工作。它仍然由於某種原因被解釋爲bash。你能證實這對你有用嗎?謝謝 – thebuckst0p
這真的讓我發瘋 - 它不工作。爲什麼??我不知道。我找到的解決方案是說'#!/ usr/bin/env node/path/to/coffee-script/bin/coffee',這是一件令人討厭的事情。 – flow
它不適用於我..在Mac OS 10.9.2上運行 – JustGoscha
不能直接使用coffee
作爲一個腳本解釋器,因爲它已經是一個腳本。但是你可以通過編寫一個簡單的C包裝解決這個問題:
#include <unistd.h>
int main(int argc, char *argv[]) {
execvp("coffee", argv);
}
編譯,並把它放在你的PATH的地方(我把它叫做klatsh
),然後把#!/usr/bin/env klatsh
在頂部(或任何你叫它)您腳本,你很好去。
是,只需使用:
$ coffee test.coffee
Output from coffee!
我想我也看到了一個純粹的JS一個對GH和咖啡郵件列表。 – thejh