使用lein从cljc文件编译ClojureScript

使用lein从cljc文件编译ClojureScript,clojure,leiningen,clojurescript,cljc,Clojure,Leiningen,Clojurescript,Cljc,cljc/lein/clojurescript有效吗 我以前使用过cljx,并且能够使用cljx插件为lein编译同一个项目,启动了cljsbuild任务 现在我切换到cljc,我想将我的cljc文件编译成已编译的Java和javascript,以便在浏览器中使用 这是我当前的project.clj文件 (defproject com.mysite/myproj "0.3.2-SNAPSHOT" :description "" :url "" :license {:name "Gnu

cljc/lein/clojurescript有效吗

我以前使用过cljx,并且能够使用cljx插件为lein编译同一个项目,启动了cljsbuild任务

现在我切换到cljc,我想将我的cljc文件编译成已编译的Java和javascript,以便在浏览器中使用

这是我当前的project.clj文件

(defproject com.mysite/myproj "0.3.2-SNAPSHOT"
  :description ""
  :url ""
  :license {:name "Gnu Lesser Public License"
            :url "https://www.gnu.org/licenses/lgpl.html"}    
  :dependencies [[org.clojure/clojure "1.7.0"]]    
  :plugins [[lein-cljsbuild "1.0.3"]
            [lein-localrepo "0.4.0"] ]    
  :source-paths ["cljc" "src" ]    
  :cljsbuild {:builds [{
                        :source-paths ["cljc"  ]
                        :compiler {
                                   :output-to "browser-based/js/main.js"
                                   :optimizations :whitespace
                                   :pretty-print true }
                        } ]}    
  :hooks [leiningen.cljsbuild]
  :aot [myproj.core]
  :main myproj.core)
我不记得是从哪里复制的,但是我假设leiningen.cljsbuild钩子是自动启动cljs构建过程的。然而,在删除cljx插件并转到cljc之后,这成功地编译了我的程序的Java版本,但似乎没有生成任何javascript。

是的,它可以工作

尝试:

(defproject com.mysite/myproj "0.3.2-SNAPSHOT"
  :description ""
  :url ""
  :license {:name "Gnu Lesser Public License"
            :url "https://www.gnu.org/licenses/lgpl.html"}    
  :dependencies [[org.clojure/clojure "1.7.0"]
                 [org.clojure/clojurescript "1.7.28"]    
  :plugins [[lein-cljsbuild "1.0.6"]
            [lein-localrepo "0.4.0"]]   
  :source-paths ["cljc" "src"]    
  :cljsbuild {:builds [{
                        :source-paths ["cljc" "src"]
                        :compiler {:output-to "browser-based/js/main.js"
                                   :optimizations :whitespace
                                   :pretty-print true}}]}    
  :hooks [leiningen.cljsbuild])
然后运行:
lein compile
lein cljsbuild一次

请注意,我将:cljsbuild下的
:源路径更改为包含“src”:
:源路径[“cljc”“src”]
。除此之外,我还添加了对clojurescript的显式依赖,并将cljsbuild版本升级到1.0.6


顺便问一下,为什么您有一个单独的
cljc
目录?您可以让您的cljc、clj和cljs文件共享相同的目录结构。

请注意,
lein doo
是用于测试的。哦,您说得对@sbensu,我会解决问题的,谢谢!谢谢是的,这很有效。Re:cljc目录。首先,它只是对我的cljx目录进行重命名(所有CLJC都重命名为cljx)。但我在网上的某个地方看到有人在使用这种布局。你能发布你的目录树吗?