Clojure 输出单独的js文件,但与leiningen共享一些代码?
对于如何最好地为我的用例设置project.clj,我有点困惑 我们试图将新技术嵌入到旧的应用程序中,因此我们使用cljs创建单独的页面,并将它们嵌入到我们的旧应用程序中,因此,不是一个单一的页面应用程序。因此,理想情况下,一个页面的javascript将与另一个页面分开。PageX的javascript不包含PageY的javascript,除非它们之间有共同的函数 我真的不确定如何最好地在project.clj中设置它。假设我们在util名称空间中有一些公共实用程序,在Page-X名称空间中有一些用于Page X的代码,在Page-Y名称空间中有一些用于Page Y的代码。在不复制代码的情况下设置此项的最佳方法是什么?可能吗 我想目录结构可能是这样的:Clojure 输出单独的js文件,但与leiningen共享一些代码?,clojure,leiningen,clojurescript,Clojure,Leiningen,Clojurescript,对于如何最好地为我的用例设置project.clj,我有点困惑 我们试图将新技术嵌入到旧的应用程序中,因此我们使用cljs创建单独的页面,并将它们嵌入到我们的旧应用程序中,因此,不是一个单一的页面应用程序。因此,理想情况下,一个页面的javascript将与另一个页面分开。PageX的javascript不包含PageY的javascript,除非它们之间有共同的函数 我真的不确定如何最好地在project.clj中设置它。假设我们在util名称空间中有一些公共实用程序,在Page-X名称空间中
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问题: