ClojureScriptの環境構築
Homebrew編*1 -ビルドツール使わないやり方
clojurescriptを入れる。
brew install clojurescript
必要なディレクトリ、ファイルを作成する。
mkdir -p src/hello_world;touch src/hello_world/core.cljs;touch build.clj
Clojureはcljだけど、ClojureScriptだとcljsらしい。
core.cljsの中身
(ns hello-world.core) (enable-console-print!) (println "Hello world!")
build.cljの中身
(require 'cljs.build.api) (cljs.build.api/build "src" {:output-to "out/main.js"})
必要なものは揃ったので
cljsc build.clj
をしたらoutディレクトリが作成されて、その下にJsファイル等が入ってる。
実際に動くか試してみる。
<html> <body> <script type="text/javascript" src="out/goog/base.js"></script> <script type="text/javascript" src="out/main.js"></script> <script type="text/javascript"> goog.require("hello_world.core"); </script> </body> </html>
参照
Leiningen編
テンプレートを使わないやり方
まずLeiningen(ビルドツール)を入れて、プロジェクトを作成する。
brew install leiningen lein new cljs-test
src/cljs/core.cljの拡張子を.cljsに変更して、内容を変更する。
(ns cljs-test.core) (enable-console-print!) (println "Hello world!")
project.cljを書き換える。
(defproject cljs-test "0.1.0-SNAPSHOT" :dependencies [ [org.clojure/clojure "1.8.0"] [org.clojure/clojurescript "1.8.51"]]) :plugins [[lein-cljsbuild "1.1.4"]] :cljsbuild { :builds [{ :source-paths ["src"] :compiler { :output-to "out/main.js" :output-dir "out" :optimizations :none :pretty-print true}}]}
ビルドしたら終わり
lein cljsbuild once
実際に動くか試してみる。
<html> <body> <script type="text/javascript" src="./out/goog/base.js"></script> <script type="text/javascript" src="./out/main.js"></script> <script type="text/javascript"> goog.require("cljs-test.core"); </script> </body> </html>
二種類の方法を書いた理由
始めLeiningenを使ってやってみたが動かなくて、次にHomebrewを使ってやったら一発で成功した。
そのあと、もう一度Leiningenを使ってやってみたら動いたから、メモとして一応書いた。
*1:わざわざHomebrew使わずともできる(Clojure Scriptを使ってみる | Developers.IO)