15

LightTableのドキュメントはかなりまばらに見えます。構築の開始点として、LightTableで非常に骨の折れるClojureScriptWebアプリケーションを作成したいと思います。ClojureのInstareplが正常に機能しているので、次の内容を含むdummy.cljsという新しいファイルを作成します。

(ns dummy)

(js/alert "Hello lighttable")

どうすればこれを実行できますか?

アップデート

私は今これを理解しました、そしてそれがかなり視覚的であるのでそれをする方法についてのビデオを投稿します。

アップデート2

これがビデオです:

http://www.youtube.com/watch?v=GZ6e0tKqYas

4

3 に答える 3

14
  1. ここで説明するように、最初にlein(https://github.com/technomancy/leiningen)を介してプロジェクトを作成する必要があります
  2. 次に、ここで説明するように、cljsbuildをプロジェクトに追加します
  3. clojurescript自動コンパイルを使用してローカルWebサーバーを実行するために、lein ring serverターミナル(またはWinの場合はcmd)から同時に実行します。lein cljsbuild auto
  4. ステップ1で作成したプロジェクトに(下部のコンソールを介して)LightTableを接続します
  5. これで、LightTableでclojureとcljsを編集でき、変更がブラウザーに配信されるはずです。ただし、LTには表示されない可能性があるため、ターミナルでエラーを確認することを忘れないでください。

より簡単な方法は、http: //clojurescriptone.com/とlein replをメインの開発ツールとして使用し、LTを1〜2ファイル内のいくつかの小さな問題を解決するための追加ツールとしてのみ使用することです。

于 2013-01-07T22:05:41.787 に答える
3

そうですね、LightTableは開発段階のREPLとしては優れていますが、完了したら、実行するClojureScriptをコンパイルする必要があります(つまり、node.jsを使用します)。

LightTableのセットアップ

  1. cljs拡張子を持つclojurescriptファイルを開きます。
  2. コントロールスペースをクリックします
  3. 接続の選択:接続の追加、およびLightTableの選択

ここに画像の説明を入力してください

ここに画像の説明を入力してください

次に、ClojureScript式を指定し、command-enterまたはshift-command-enterキー(Mac OS Xの場合)を使用して評価できます。

ここに画像の説明を入力してください

node.jsのセットアップ

最も簡単な方法はラインを使用することですが、ラインを使用したくない場合は、これが可能な方法の1つです。

ステップ1:cljs.jarコンパイラをダウンロードする

または、可能な場合は新しいバージョンをダウンロードします。

ステップ2:ソースディレクトリを作成し、ファイルを作成します

└── src
    ├── build.clj
    └── smcho
        └── core.cljs

build.cljは次のとおりです。必要に応じて、名前空間を変更し、それに応じてディレクトリ名を変更できます。

(require 'cljs.build.api)
(cljs.build.api/build "src"
  {:main 'smcho.core
    :output-to "main.js"
    :target :nodejs})

これはClojureScriptコードです。mainメソッドが追加されます。

(ns smcho.core
    (:require [cljs.nodejs :as nodejs]))

(nodejs/enable-util-print!)

(defn factorial [x]
    (reduce * (range 1 (inc x))))

(defn fib [n]
    (if (<= n 1)
        1
        (+ (fib (- n 1)) (fib (- n 2)))))

(defn sort-seq []
    (sort (repeat 100 (rand-int 2000))))

(defn time-fun [fun]
    (let [start  (.getTime (js/Date.))
                _      (fun)
                end    (.getTime (js/Date.))
                result (- end start)]
        result))

(defn time-it [fun]
    (let [values  (for [i (range 200)] (time-fun fun))]
        (/ (apply + values)
             (count values))))

(defn -main []
    (println "(factorial 5000) \t Avg: " (time-it #(factorial 5000)))
    (println "(fib 20) \t Avg: "         (time-it #(fib 20)))
    (println "(sort-seq) \t Avg: "       (time-it #(sort-seq))))

(set! *main-cli-fn* -main)

ステップ3:main.jsスクリプトを取得するためにビルドします。

java -cp cljs.jar:src clojure.main src/build.clj

ステップ4:node.jsを実行します

node main.js

実行結果が表示されます。

(factorial 5000)     Avg:  0.65
(fib 20)     Avg:  0.135
(sort-seq)   Avg:  0.135

サンプルコードはhttp://blog.gonzih.me/blog/2013/01/23/clojurescript-on-beaglebone-simple-benchmark-with-node-dot-js/からコピーされています。

于 2015-10-28T01:36:40.560 に答える
1

clojurescriptでライトテーブルを使用する場合、clojureプロジェクトとの違いは次のとおりです。

あるページをブラウザ(内部または外部)に接続する場合は、次を実行する必要があります:ターミナルで
leincljsbuildauto

そうしないと、グーグル関連のjsが見つかりません。

ここから確認できます:
https ://groups.google.com/forum/#!topic / light-table-discussion / fJBLMzmZSWw

于 2014-02-20T10:03:34.260 に答える