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

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

(ns dummy)

(js/alert "Hello lighttable")

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

Обновить

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

Обновить 2

Вот видео:

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

15
nl ja de

3 ответы

  1. you should first create a project via lein( https://github.com/technomancy/leiningen) as described here
  2. then add cljsbuild to your project, as described here
  3. run from terminal(or cmd on win) simultaneously lein ring server and lein cljsbuild auto, in order to run local web-server with clojurescript autocompile
  4. connect LightTable(via console at the bottom) to the project you've created in step 1
  5. now you can edit clojure and cljs in LightTable and changes should be delivered to your browser. But don't forget to check terminal for errors, as they probably won't be shown in LT.

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

14
добавлено
Хорошо, я попробую, а затем отметьте ответ. благодаря
добавлено автор Zubair, источник
Для еще более минимального проекта: github.com/danielribeiro/hello-clojurescript
добавлено автор Daniel Ribeiro, источник
Вы также можете взглянуть на github.com/konrad-garus/cljs-kickoff получить минимальный проект leiningen для запуска clojurescript в веб-приложении.
добавлено автор Adrian Mouat, источник

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

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

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

enter image description here

enter image description here

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

enter image description here

Настройка для 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: build, чтобы получить скрипт 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/ .

3
добавлено

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

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

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

You can check from here:
https://groups.google.com/forum/#!topic/light-table-discussion/fJBLMzmZSWw

1
добавлено
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Clojure — русскоговорящее сообщество
Clojure — русскоговорящее сообщество
433 участник(ов)

Общаемся на темы, посвященный Clojure. Решаем проблемы, обмениваемся опытом и делимся новостями. Вакансии и поиск работы: @clojure_jobs Вам могут быть интересны: @javascript_ru, @nodejs_ru, @ruby_ru, @devops_ru, @devops_jobs