Leiningen のインストール
$ mkdir -p ~/bin
$ cd ~/bin
$ wget https://raw.github.com/technomancy/leiningen/stable/bin/lein
$ chmod 755 lein
$ ./lein version
Downloading Leiningen to /home/cuzic/.lein/self-installs/leiningen-2.7.0-
% Total % Received % Xferd Average Speed Time Time Time C
Dload Upload Total Spent Left S
100 605 0 605 0 0 584 0 --:--:-- 0:00:01 --:--:--
100 14.6M 100 14.6M 0 0 239k 0 0:01:02 0:01:02 --:--:--
Leiningen 2.7.0 on Java 1.7.0_85 OpenJDK 64-Bit Server VM
プロジェクトの開始
$ lein new piggieback_project
$ cd piggieback_project
project.clj
の編集
project.clj
を下記のように編集する
project.clj
(defproject piggieback_project "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.8.0"]
[org.clojure/clojurescript "1.7.228"]]
:profiles {:dev {:dependencies [[com.cemerick/piggieback "0.2.1"]
[org.clojure/tools.nrepl "0.2.10"]]
:repl-options {:nrepl-middleware
[cemerick.piggieback/wrap-cljs-repl]}}})
-
nREPL
: リモートで Clojure のコードを評価できる Clojure のライブラリ -
Piggieback
:nREPL
を使ってリモートの ClojureScript 環境で評価できるようにするnREPL
ミドルウェア
greet.html
の編集
greet.html
<html>
<body>
<script type="text/javascript" src="out/main.js"></script>
</body>
</html>
src/piggieback_project/core.cljs
の編集
src/piggieback_project/core.cljs
(ns piggieback-project.core
(:require [clojure.browser.repl :as repl]))
(defonce conn
(repl/connect "http://localhost:9000/repl"))
lein repl
の開始
$ lein repl
user=> (require 'cljs.build.api)
user=> (cljs.build.api/build "src" {:main 'piggieback-project.core :output-to "out/main.js" :verbose true})
user=> (require 'cljs.repl.browser)
これで、 9000 番ポートで待ち受けるようになる。
localhost:9000
に接続
$ firefox http://localhost:9000/
lein repl
cljs.user=> (js/alert "Hello World from Piggieback!")
これでブラウザで、 Hello World from Piggeback!
というポップアップが表示される