Как создать базовое приложение ClojureScript Hello World в Lighttable?

Документация кажется довольно редкой в ​​LightTable. Я хочу создать очень простое веб-приложение ClojureScript CowjureScript в LightTable в качестве отправной точки для построения. У меня есть Instarepl в Clojure, работающий нормально, а затем создаю новый файл с именем dummy.cljs, содержащий следующее:

(ns dummy)

(js/alert "Hello lighttable")

Как я могу запустить это?

Update

Я понял это сейчас, и я опубликую видео о том, как это сделать, поскольку это довольно визуально.

Обновление 2

Вот видео:

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

Ответы

Ответ 1

  • вам следует сначала создать проект через lein (https://github.com/technomancy/leiningen), как описано здесь
  • затем добавьте cljsbuild в ваш проект, как описано здесь
  • выполняется с терминала (или cmd on win) одновременно lein ring server и lein cljsbuild auto, чтобы запустить локальный веб-сервер с autocompile clojurescript
  • подключите LightTable (через консоль внизу) к проекту, который вы создали на шаге 1
  • теперь вы можете редактировать clojure и cljs в LightTable, а изменения должны быть доставлены в ваш браузер. Но не забудьте проверить терминал на наличие ошибок, поскольку они, вероятно, не будут показаны в LT.

Более простой способ будет использовать http://clojurescriptone.com/ и lein repl в качестве основного инструмента разработки и использовать LT только как дополнительный инструмент для решения некоторых небольших проблем внутри один-два файла.

Ответ 2

Хорошо, LightTable хорош как REPL на этапе разработки, но когда вы закончите, вам нужно скомпилировать ClojureScript для выполнения (т.е. с node.js).

Настройка для LightTable

  • Откройте файл clojurescript с расширением cljs.
  • Нажмите Control-space
  • Выберите соединение: добавьте соединение и выберите LightTable

введите описание изображения здесь

введите описание изображения здесь

Затем вы можете дать выражение ClojureScript и оценить его с помощью команды-enter или shift-command-enter (с Mac OS X).

введите описание изображения здесь

Настройка для node.js

Самый простой способ - использовать лейн, но если вы не хотите использовать лейн, это один из возможных способов.

Шаг 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; добавляется основной метод.

(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 script.

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/.

Ответ 3

Чтобы использовать световую таблицу с clojurescript, одно отличие от проекта clojure:

Если я подключу некоторую страницу с браузером (внутренним или внешним), мне нужно запустить:
lein cljsbuild auto
в терминале.

в противном случае jog, связанный с goog, не может быть найден.

Вы можете проверить здесь:
https://groups.google.com/forum/#!topic/light-table-discussion/fJBLMzmZSWw