繁体   English   中英

项目组织和cljsbuild配置需要名称空间

[英]Project organization and cljsbuild config to require namespace

如何组织项目结构并配置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

您通常不需要每个名称空间的单独的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的简单示例项目中找到这种简单布局的示例。

期待cljsbuild自述文件,似乎您正在采用“多重构建配置”的路径。 实际上,这通常用于为您的主要代码和针对该代码的测试提供单独的构建配置文件。 这在高级示例中已显示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM