実行したいだけなら簡単
単純に「実行」だけしたいなら
<script src="//coffeescript.org/extras/coffee-script.js"></script> <script src="script.coffee" type="text/coffeescript"></script>
でscript.coffeeにCoffeeScript書けば自動的にコンパイルされて実行される。
だけどこれだとコード書くときデバッグが全くできない
そこで「Grunt」というビルドツールを使う。まぁつまりNodeを使うってことである。
インストール
まずはグローバルにGruntをインストール
npm install -g grunt-cli
適当なディレクトリを作る。以下はそのディレクトリ上での話 package.jsonの生成
npm init
gruntをこのディレクトリ上にもインストール -Sまたは--save-devオプションをつけることでさっき生成したpackage.jsonにGruntに依存することが明記される
npm install grunt grunt-contrib-coffee grunt-contrib-connect -S
ディレクトリ上に「www」ディレクトリを作成し、「src」と「js」ディレクトリも作成。src/test.jsに適当なCoffeeScriptを書く
class Man constructor: (@name, @age) -> greet: (arg) -> console.log 'Hello I\'m ' + @name + "!"; h = new Man "Hosomichi", 30 h.greet()
さらにwww上にindex.htmlを作成
//index.html <!DOCTYPE html> <html> <head lang="ja"> <meta charset="UTF-8"> <title></title> <script src="./js/test.js"></script> </head> <body> <h1>Hello World!!!</h1> </body> </html>
最後にGruntfile.jsを作成し以下のように
module.exports = function (grunt) { grunt.initConfig({ coffee:{ compile:{ files:[{ expand: true, cwd: 'www/src/', src: ['**/*.coffee'], dest: 'www/js/', ext: '.js', }] } }, connect: { local: { options: { keepalive: true, port: 8080, base: 'www' } } } }); grunt.loadNpmTasks('grunt-contrib-coffee'); grunt.loadNpmTasks('grunt-contrib-connect'); grunt.registerTask("default", ['coffee','connect']); };
最終的にはこんな感じ
|-- Gruntfile.js |-- package.json `-- www |-- index.html |-- js | `-- test.js(gruntによって自動生成される) `-- src `-- test.coffee
これでgruntコマンドを叩いてhttp://192.168.1.xxx:8080/にアクセスすれば表示されるはず