[英]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.