我怎样才能创建Lighttable基本ClojureScript的Hello World应用程序?(

2019-08-04 22:15发布

该文件似乎在LightTable相当稀疏。 我想创建LightTable非常裸露的骨头ClojureScript web应用为出发点的基础上。 我有Instarepl Clojure中工作正常,然后我创建一个名为包含以下dummy.cljs新的文件:

(ns dummy)

(js/alert "Hello lighttable")

我如何运行呢?

更新

我现在已经想通了这一点,我会发布关于如何待办事项,因为它是非常直观的视频。

更新2

下面是视频:

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

Answer 1:

  1. 你应该先创建通过雷音(项目https://github.com/technomancy/leiningen所述) 在这里
  2. 然后加入cljsbuild到您的项目,如所描述这里
  3. 从终端(或赢CMD)同时运行lein ring serverlein cljsbuild auto中,为了运行本地web服务器与clojurescript自动编译
  4. 连接LightTable(通过在底部控制台)到项目你在步骤1中创建
  5. 现在你可以在LightTable编辑的Clojure和cljs和变更应交付到你的浏览器。 但是,不要忘记检查终端的错误,因为他们可能不会在LT所示。

更简单的方法是使用http://clojurescriptone.com/和雷音REPL为主要开发工具,并使用LT仅作为解决一两个文件中的一些小问题的其他工具。



Answer 2:

那么,LightTable是好的,在开发阶段REPL,但是当你做,你需要编译ClojureScript要执行(即用Node.js的)。

安装程序LightTable

  1. 打开与cljs扩展名的文件clojurescript。
  2. 单击控制空间
  3. 选择连接:添加连接,并选择LightTable

然后,你可以给ClojureScript表达,并与评估它的命令输入或移位指令输入键(与Mac OS X)。

安装程序的node.js

最简单的方法是使用雷音,但如果你不想使用雷音,这是可能的方式之一。

第一步:下载cljs.jar编译

  • https://github.com/clojure/clojurescript/releases/download/r1.7.145/cljs.jar

或者,如果提供下载新版本。

第二步:创建源目录和创建文件

└── 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代码; 被添加的主要方法。

(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)

第三步:建立以获得main.js脚本。

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

第四步:运行的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/ 。



Answer 3:

要使用光表clojurescript,从Clojure的项目一个区别是:

如果我用连接器(内部或外部)的一些网页,我需要运行:
雷音cljsbuild汽车
在终端。

否则,goog相关JS无法找到。

你可以在这里查看:
https://groups.google.com/forum/#!topic/light-table-discussion/fJBLMzmZSWw



文章来源: How can I create a basic ClojureScript Hello World app in Lighttable?