簡體   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