# shadow-cljs - ブラウザ・クイックスタート これはブラウザ上で動作するCLJSプロジェクトで利用できる最小限のテンプレートです。 ## 必要なソフトウェア - [node.js (v6.0.0+)](https://nodejs.org/en/download/) - [Java JDK (8+)](http://www.oracle.com/technetwork/java/javase/downloads/index.html) または [Open JDK (8+)](http://jdk.java.net/10/) ## ユーザーガイド このリポジトリでは、基本的なブラウザ向けのビルド方法を示します。 詳細は完全な[ユーザーガイド](https://shadow-cljs.github.io/docs/UsersGuide.html)をご参照ください。 ## 例の実行 ```bash git clone https://github.com/shadow-cljs/quickstart-browser.git quickstart cd quickstart npm install npx shadow-cljs server ``` 以上により `shadow-cljs` サーバープロセスが実行され、以下のすべてのコマンドはこのプロセスに応答します。 このプロセスを実行したまま、新しいターミナルを開いて続行してください。 最初の起動は、すべての依存関係をダウンロードして準備作業を行う必要があるため、少し時間がかかります。 これが実行されると、すぐに始められます。 ```txt npx shadow-cljs watch app ``` これにより設定された `:app` ビルドのコンパイルが開始して、ファイルを変更するたびに再コンパイルします。 "Build completed." というメッセージが表示されたら、ビルドを使用する準備が整いました。 ```txt [:app] Build completed. (23 files, 4 compiled, 0 warnings, 7.41s) ``` では [http://localhost:8020](http://localhost:8020)を開きましょう。 このアプリは、最も便利な開発ツールが設定された基本的なスケルトンに過ぎません。 `shadow-cljs` の設定は `shadow-cljs.edn` でします。次のようなものです。 ```clojure ;; shadow-cljs の設定 {:source-paths ; .cljs ファイルはここで指定します ["src/dev" "src/main" "src/test"] :dependencies ; 後ほど説明します [] :dev-http ; http://localhost:8020 上で http 開発用サーバーを起動し、`public` をサーブします。 {8020 "public"} :builds {:app ; build identifier {:target :browser :output-dir "public/js" :asset-path "/js" :modules {:main ; becomes public/js/main.js {:init-fn starter.browser/init}}}}} ``` この設定では、`:target` を `:browser` に設定した `:app` ビルドを定義します。 すべての出力は `public/js` に書き込まれます。 これはプロジェクトのルートからの相対パスです。つまり、`shadow-cljs.edn` の設定があるディレクトリからの相対パスです。 `:modules` は、出力をどのようにまとめるかを定義します。 今のところ、1つのファイルだけが必要です。 `main` モジュールは `public/js/main.js` に書き込まれ、`:entrices` のコードと、それらの依存関係をすべて含みます。 最後の部分は、`http://localhost:8020` を開いたときに読み込まれる実際の `index.html` です。 この index ファイルは、生成された `js/main.js` をロードして、`src/main/start/browser.cljs` で定義された `start.browser.init` を呼び出します。 ```html