如何组织我的项目结构并将cljsbuild配置为需要我自己的命名空间?例如,在我的project/src-cljs文件夹中有:
└── project
├── file1
│ └── file1.cljs
├── file2
│ └── file2.cljs
└─── required
└── required.cljs我希望file1.cljs(命名空间为file1.file1)和file2.cljs(命名空间为file2.file2)要求required.cljs(名称空间为required.required)。
我的:cljsbuild看起来像:
:cljsbuild {:builds
[{:source-paths ["src-cljs/project/file1"]
:compiler {:output-to "resources/public/js/file1.js"}}
{:source-paths ["src-cljs/project/file2"]
:compiler {:output-to "resources/public/js/file2.js"}}]}当我(:require [required.required :as required])和编译时,我得到了异常:
Caused by: clojure.lang.ExceptionInfo: No such namespace: required.required, could not locate required/required.cljs, required/required.cljc, or Closure namespace "required.required" at line 1 src-cljs/project/file1/file1.cljs
发布于 2015-08-10 14:00:28
对于每个名称空间,通常不需要单独的js输出文件和cljsbuild配置文件。您需要一个包含所有名称空间的cljsbuild配置文件。类似于:
:cljsbuild {:builds
[{:source-paths ["src-cljs/project"]
:compiler {:output-to "resources/public/js/project.js"}}]}不仅如此:您可能希望使用“src”作为:source-paths,然后将您的命名空间命名为project.ns1.sub-ns1。但是您可以不使用project ns前缀来完成它。
您可以在lein-cljsbuild的简单示例项目中找到这个简单布局的示例。
从cljsbuild的角度来看,您似乎走上了“多重构建配置”的道路。实际上,这主要用于为您的主代码和针对该代码的测试提供单独的构建概要文件。在高级示例中显示了这一点。
https://stackoverflow.com/questions/31879581
复制相似问题