मैं कुछ जेएस पुस्तकालयों को संकलित करने की कोशिश कर रहा हूं जो हमारे पास क्लोजरस्क्रिप्ट कोड बेस में उन्हें एकीकृत करने के लिए लीन-क्लजस्बिल्ड के साथ हैं। सबसे पहले मैंने प्रत्येक फ़ाइल के शीर्ष पर कुछ goog.provide जोड़ा, और फ़ाइलों को उनके नामस्थान (जैसे जावा में) के अनुसार निर्देशिका पेड़ में श्रेणीबद्ध रूप से व्यवस्थित किया गया है। वह नेमस्पेस एबीसी है src-js/libs/a/b/c.jsClojsScript में Cljsbuild के साथ बाहरी जेएस फाइलों को संकलित करना
मैंने जेएस फाइलों को src-js/libs में प्रोजेक्ट की मूल निर्देशिका में रखा है, और मेरे पास निम्न है: कंपाइलर lein-cljsbuild के लिए विकल्प:
{:id "prod",
:source-paths ["src-cljs" "src-js"]
:compiler
{:pretty-print false,
:libs ["libs/"]
:output-to "resources/public/js/compiled-app.js",
:optimizations :simple}}
जे एस से कोई भी फ़ाइल संकलित एप्लिकेशन के अंतर्गत फ़ाइल में संकलित किया मिलता है। क्या गलत है?
मैंने सफलता के बिना उन्हें संसाधन/बंद-जेएस/libs में रखने की भी कोशिश की।
मैं lein-cljsbuild 0.3.0 का उपयोग कर रहा हूं।
src-js (minus, slash नहीं!) क्लासपाथ में नहीं है इसलिए मैं ऐसा करने के लिए जोड़ता हूं। आपको किसी विशेष लाइब्रेरी को निर्दिष्ट करने की आवश्यकता नहीं है, तो आप एक निर्देशिका निर्दिष्ट कर सकते हैं, यह काम करता है लेकिन मेरे पास एक बग था: यह पदानुक्रम में स्वचालित रूप से फ़ाइल को पुन: संकलित नहीं करता है। Cljsbuild के बग ट्रैकर देखें। अंततः मेरी फाइलें संकलित नहीं की गईं क्योंकि ए) उन्हें cljs फ़ाइल में आवश्यक नहीं था। बी) फ़ाइल के साथ एक बग था जिसमें शून्य/हाइफ़न प्रतीकों थे। बग ट्रैकर भी देखें। – z1naOK9nu8iY5A
ठीक है वास्तव में जेएस फ़ाइलों को संकलित करने के लिए एक संपूर्ण निर्देशिका निर्दिष्ट करना संभव है। जैसा कि आपने उल्लेख किया है कि निर्देशिका को निर्दिष्ट किया जाना चाहिए: lib कीवर्ड और नहीं: स्रोत-पथ में। मेरे उदाहरण में: libs "src-js/libs" होना चाहिए और फिर यह काम करता है। – z1naOK9nu8iY5A