如何组织我的项目结构并将cljsbuild配置为需要我自己的命名空间?例如,在我的project/src-cljs
文件夹中:
└── project
├── file1
│ └── file1.cljs
├── file2
│ └── file2.cljs
└─── required
└── required.cljs
我希望file1.cljs
(命名为file1.file1
)和file2.cljs
(命名为file2.file2
)要求required.cljs
(命名空间为{{ 1}})。
我的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])
答案 0 :(得分:1)
您通常不希望每个命名空间都有单独的js输出文件和cljsbuild配置文件。您需要一个包含所有命名空间的cljsbuild配置文件。类似的东西:
:cljsbuild {:builds
[{:source-paths ["src-cljs/project"]
:compiler {:output-to "resources/public/js/project.js"}}]}
不仅如此:您可能希望[" src-cljs"]为:source-paths
,然后将您的命名空间命名为project.ns1.sub-ns1
。但是你可以在没有project
ns前缀的情况下做到这一点。
您可以在lein-cljsbuild的simple example project中找到这个简单布局的示例
期待cljsbuild自述文件,您似乎走的是"Multiple build configurations"的路径。实际上,这主要用于为主代码和针对该代码的测试提供单独的构建配置文件。这显示在advanced example。
中