前段时间我使用了试剂库,对它的功能和速度非常满意。
但现在我参与了一些带有游戏框架的 Web 开发,并希望有机会在我的项目中使用这个不错的库。
有一个用于播放的clojurescript 编译插件,所以我想它可以用来编译,也许可以连接和最小化试剂资产。
所以问题是:可以在没有 leiningen 的情况下在 sbt build 上使用试剂吗?
更新: 我用谷歌搜索了 clojurescript plugin 的这个继任者。
从插件的描述和这个问题(由后继库的作者) 我了解到应该在plugins.sbt
我plugins.sbt
后来添加了这段代码:
addSbtPlugin("io.github.petro-rudenko" % "play-clojurescript" % "0.0.2")
resolvers += "clojars" at "http://clojars.org/repo/"
resolvers += "clojure-releases" at "http://build.clojure.org/releases"
libraryDependencies += "reagent" % "reagent" % "0.5.0"
并编写示例 cljs
(ns javascripts.reagentsample
(:require [reagent.core :as reagent]))
(enable-console-print!)
(defn input-field [label-text id]
(let [value (atom nil)]
(fn []
[:div
[:label "The value is: " @value]
[:input {:type "text"
:value @value
:on-change #(reset! value (-> % .-target .-value))}]])))
(reagent/render-component [input-field] (.-body js/document))
代码已编译并与 clojurescript 核心和试剂库连接。在删除了一些 requirejs 和 angular cloacks 之后,一切都变得神奇了。
所以现在我只有一个问题:我不能要求我自己的命名空间。尽管我clojure.lang.ExceptionInfo: No such namespace:
在 clojurescript 编译期间尝试了所有命名尝试。
从那个来源的角度来看,我可以说我的项目中 clojurescript 编译器的入口点是app/assets/
所以我的主文件具有以下命名空间定义:
(ns javascripts.reagentsample
(:require [reagent.core :as reagent :refer [atom]]
[javascripts.lol :refer [mystring]]))
我的次要来源有这个定义:
(ns javascripts.lol)
两者都位于app/assets/javascripts
文件夹中。