与leiningen的Clojurescript快速启动问题

时间:2017-10-22 23:50:55

标签: clojurescript leiningen

我跟随Window 7上的Clojurescript QuickStart并坚持最后一点 - 与Leiningen一起跑 简单命令:

lein run -m clojure.main repl.clj

返回错误,启动时会出现具有强大堆栈跟踪的错误:

clojure.lang.Compiler$CompilerException: java.io.FileNotFoundException: Could not locate cljs/repl__init.class or cljs/repl.clj on classpath: , compiling:(X:\n\code\hello_world\repl.clj:1:1)

我在网上搜索并找到了最近的case,但我刚刚从网站上复制了整个代码,所以我相信没有拼写错误。
我错过了什么?

repl.clj:

(require 'cljs.repl)
(require 'cljs.build.api)
(require 'cljs.repl.browser)
(cljs.build.api/build "src"
  {:main 'hello-world.core
   :output-to "out/main.js"
   :browser-repl true
   :verbose true})
(cljs.repl/repl (cljs.repl.browser/repl-env)
  :watch "src"
  :output-dir "out")


更新 我用lein创建了项目'hw',将repl.clj复制到项目根目录以及cljs.jar。我还将cljs.jar复制到src目录(在快速入门指南中提到src自动转到classpath),但结果是一样的。
project.clj:

 (defproject hw "0.1.0-SNAPSHOT"
      :description "FIXME: write description"
      :url "http://example.com/FIXME"
      :license {:name "Eclipse Public License"
                :url "http://www.eclipse.org/legal/epl-v10.html"}
      :dependencies [[org.clojure/clojure "1.6.0"]]
      :main ^:skip-aot hw.core
      :target-path "target/%s"
      :profiles {:uberjar {:aot :all}})

更新2
即使将clojurescript添加为依赖项也没有运气:

(defproject hw "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.6.0"]
                 [org.clojure/clojurescript "1.7.170"]
                 ]
  :main ^:skip-aot hw.core
  :target-path "target/%s"
  :profiles {:uberjar {:aot :all}})

将cljs.jar放到lib direcroty也没有帮助 https://youtu.be/ciCQ_Nkis4I

1 个答案:

答案 0 :(得分:0)

要让Leiningen选择cljs.jar,您需要在项目根目录下创建一个lib目录并将cljs.jar放在那里。教程确实提到了这是在Leiningen部分之前的Dependencies部分:

  

如果您有一些依赖项,一种约定是将它们放入名为lib

的文件夹中

我猜你应该推断Leiningen遵循这个惯例。

我在这方面的工作证据是:leiningen - how to add dependencies for local jars?

然而注意到底部有评论:

  

自Leiningen v2起,lib /目录功能已被删除。

因此,快速入门教程已过时。

我建议直接去figwheel介绍Clojurescript,不管那里有什么说法。