ClojureScript チュートリアルメモ

ClojureScriptを触ってみたのでメモ。

Quick Start

私は Windows7 環境で MinGW(Git Bash) 利用なので、下記手順そのままで Quick Start。

導入
git clone git://github.com/clojure/clojurescript.git
cd clojurescript
./script/bootstrap
Clojure REPL の起動
export CLOJURESCRIPT_HOME=$PWD
./script/repl
ClojureScript REPL (Rhino) の起動

Clojure REPL から ClojureScript REPL (Rhino) を起動する場合

(require '[cljs.repl :as repl])
(require '[cljs.repl.rhino :as rhino])
(def env (rhino/repl-env))
(repl/repl env)

上記のClojureコードを実行するスクリプトで起動する場合

./script/repljs
ClojureScript を JavaScriptコンパイル
./bin/cljsc ソース オプション

あるいは、ClojureScript REPL (Rhino)上で以下

(require '[cljs.closure :as cljsc])
(cljsc/build ソース オプション)

Tutorial

下記に沿ってやってみた。

Tutorial の基礎となるコードを取得して動かしてみる

コードを取得して、サーバ起動

git clone https://github.com/magomimmo/modern-cljs.git
cd modern-cljs
lein ring server-headless

別窓を立ち上げて、ClojureScriptのコンパイル、ClojureScript REPL (ブラウザ内) 接続

lein cljsbuild once
lein trampoline cljsbuild repl-listen

ブラウザで以下を開く

Tutorial 1 - The basic

1. ソースコードの作成

  • modern-cljs/src/cljs/modern_cljs/modern.cljs
(ns modern-cljs.modern)

(.write js/document "Hello, ClojureScript!")
  • modern-cljs/resources/public/simple.html
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Simple CLJS</title>
    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
</head>
<body>
    <!-- pointing to cljsbuild generated js file -->
    <script src="js/modern.js"></script>
</body>
</html>

2. コンパイル

lein cljsbuild once

(補足)以下のコマンドで、ファイルが更新されるたびに自動コンパイル可能。

lein cljsbuild auto

3. 動作確認
simple.htmlをブラウザで開き、「Hello, ClojureScript!」と表示されることを確認する。