高見龍

iOS app/Ruby/Rails Developer & Instructor, 喜愛非主流的新玩具 :)

CoffeeScript 使用篇

CoffeeScript裝好了,準備來泡咖啡了

假設我寫了一個檔名為app.coffee(內容怎麼寫請見CoffeeScript基礎篇),現在我想來編譯這個coffee檔:

> coffee --watch --compile app.coffee

這行指令會把app.coffee編譯產生一個同名的app.js

加上了–watch參數,CoffeeScript的編譯器會一直監看這個檔案,只要檔案一有變動,編譯器就會再重新編譯產生一份新的.js檔案。如果你覺得–watch、–compile太囉嗦或不想打那麼多字,也可以用-w、-c來替代。

如果你希望把幾個coffee檔案在編譯的時候合併成一個.js檔,以減少http request的數量,你可以這樣做:

> coffee --join application.js --compile *.coffee

這樣就會把同一個目錄裡的coffee檔編譯並組合成同一個js檔,這裡–join也可以簡寫成-j。

更多內容請見coffee –help

CoffeeScript Console

CoffeeScript也有像Ruby的irb一樣的REPL,提供一個像shell的互動介面可以讓你試玩,你只要不帶參數的執行CoffeeScript編譯器:

> coffee
coffee> name = "eddie"
'eddie'

這樣你就可以在這個環境裡面試一些語法。如果你曾經使用過Ruby的irb,你對這個結果應該不陌生。

一定要編譯成js檔嗎?

上面講的是如何把coffee檔編譯成js檔,編譯成js檔當然放到網頁上當然沒問題,但是不是一定要編譯呢? 不編譯的話,coffee檔能不能直接拿來用?

當然是可以的,只要先引入一行CoffeeScript的編譯器,就可以在HTML的頁面裡直接寫CoffeeScript:

1
<script type="text/javascript" src="http://jashkenas.github.com/coffee-script/extras/coffee-script.js"></script>

然後你要這樣寫:

1
2
3
<script type="text/coffeescript">
  alert 'test'
</script>

或是寫在外部檔案:

1
<script type="text/coffeescript" src="myapp.coffee"></script>

都可以,這樣就能讓你的瀏覽器就看得懂CoffeeScript,只是這樣一來的速度一定比直接編譯成.js檔要來得慢,所以實務上還是會先編譯成.js檔再拿來使用。

OK! 可以開始喝咖啡了!

Comments