Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 输出单独的js文件,但与leiningen共享一些代码?_Clojure_Leiningen_Clojurescript - Fatal编程技术网

Clojure 输出单独的js文件,但与leiningen共享一些代码?

Clojure 输出单独的js文件,但与leiningen共享一些代码?,clojure,leiningen,clojurescript,Clojure,Leiningen,Clojurescript,对于如何最好地为我的用例设置project.clj,我有点困惑 我们试图将新技术嵌入到旧的应用程序中,因此我们使用cljs创建单独的页面,并将它们嵌入到我们的旧应用程序中,因此,不是一个单一的页面应用程序。因此,理想情况下,一个页面的javascript将与另一个页面分开。PageX的javascript不包含PageY的javascript,除非它们之间有共同的函数 我真的不确定如何最好地在project.clj中设置它。假设我们在util名称空间中有一些公共实用程序,在Page-X名称空间中

对于如何最好地为我的用例设置project.clj,我有点困惑

我们试图将新技术嵌入到旧的应用程序中,因此我们使用cljs创建单独的页面,并将它们嵌入到我们的旧应用程序中,因此,不是一个单一的页面应用程序。因此,理想情况下,一个页面的javascript将与另一个页面分开。PageX的javascript不包含PageY的javascript,除非它们之间有共同的函数

我真的不确定如何最好地在project.clj中设置它。假设我们在util名称空间中有一些公共实用程序,在Page-X名称空间中有一些用于Page X的代码,在Page-Y名称空间中有一些用于Page Y的代码。在不复制代码的情况下设置此项的最佳方法是什么?可能吗

我想目录结构可能是这样的:

src/cljs/util/...
src/cljs/page-x/...
src/cljs/page-y/...
也许如果我将:source路径设置为[src/cljs/util,src/cljs/page-x]用于pagex构建,并将pagey-y用于pagey构建?只需根据需要在数组中包含公共代码?也许是这样的:

:page-x {
  :source-paths ["src/cljs/util", "src/cljs/page-x"]
  :compiler {
     :output-to "dist/js/page-x.min.js"
     :optimizations :advanced}}

:page-y {
  :source-paths ["src/cljs/util", "src/cljs/page-y"]
  :compiler {
     :output-to "dist/js/page-y.min.js"
     :optimizations :advanced}}
我会继续胡闹,但我想我会在这样做的时候把这个问题抛出去


编辑:上述想法的名称空间问题。例如,我有一个src/cljs/util/util.cljs和src/cljs/page-x/main.cljs。我相信约定是文件的名称空间是它所在的目录,但是如果src/cljs/util是在:source path中指定的目录,那么它就是根目录,因此我无法确定util.cljs的名称空间。这让我想到了一些可爱的错误——leiningen运行时从未提供必需的util.util名称空间消息。

据我所知,编译器现在只适用于输出单个文件,因此现在没有代码拆分/公共共享代码包

跟踪jira问题: