2013-02-25 11 views
5

क्लोजरस्क्रिप्ट के लिए नया नहीं मिला, और "आधुनिक सीएलजेएस" ट्यूटोरियल here के माध्यम से काम कर रहा था।क्लोजरस्क्रिप्ट पुस्तकालय - goog.require

यह project.clj में जोड़कर domina में खींचने के लिए निर्देश देता है:

:dependencies [[org.clojure/clojure "1.4.0"] 
       [compojure "1.1.5"] 
       [domina "1.0.0"]] 

और फिर ns रूप में संदर्भित

(ns cljstut.login 
    (:use [domina :only [by-id value]])) 

हालांकि, जब मैं वास्तव में से अपनी स्क्रिप्ट में इसका इस्तेमाल करते हैं इसे ब्राउज़र में चलाएं, मैं कंसोल लॉग में निम्नलिखित देखता हूं।

goog.require could not find: domina 

ऐसा लगता है कि मुझे कहीं कुछ घोषणा याद आ रही है? लेकिन एक नौसिखिया के रूप में, यह पूरी बिल्ड प्रक्रिया बल्कि अपारदर्शी है। किसी भी समस्या निवारण युक्तियों की बहुत सराहना की जाती है।

उत्तर

3

आपकी project.clj फ़ाइल में निर्भरताएं और आपकी नेमस्पेस घोषणाएं ठीक दिखती हैं।

यदि आप lein cljsbuild auto का उपयोग करके अपने क्लोजरस्क्रिप्ट कोड का निर्माण कर रहे हैं, तो आपको उस प्रक्रिया को पुनरारंभ करना होगा। मेरा मानना ​​है कि इसे पुनरारंभ करने के बाद स्वचालित रूप से नई निर्भरताओं में खींचना चाहिए।

यदि यह काम नहीं करता है, या आप lein cljsbuild auto का उपयोग नहीं कर रहे हैं, तो अपने प्रोजेक्ट के फ़ोल्डर में मैन्युअल रूप से lein deps कमांड चलाने का प्रयास करें - यह सभी लापता निर्भरताओं को रिमोट रिपॉजिटरीज़ से लाएगा।

+1

मैं वास्तव में सिर्फ मिल गया है इसके माध्यम से, और मुझे लगता है कि यह डोमिन 1.0.1 हो सकता है जो इसे ठीक करता है? गूग-जार या कुछ के बारे में कुछ 1.0.0 में निर्भरता थी और अब यह नहीं लगता है। क्या यह उचित लगता है? – BnWasteland

+0

आह हाँ, यह समझ में आता है। मुझे 'डोमिन 1.0.0' के साथ विश्वास है कि चीजों को काम करने के लिए आपको Google क्लोजर तृतीय पक्ष lib पर स्पष्ट निर्भरता जोड़नी होगी। – mtyaka

+1

'लीन क्लजस्बिल्ड ऑटो' को पुनरारंभ करने के लिए एक समान त्रुटि के लिए मेरे लिए काम किया। – verma

1

मैं प्रयुक्त libs और lein plugins के नवीनतम संस्करणों में आधुनिक-cljs को अद्यतन करने की प्रक्रिया में हूं। इस समय मैंने श्रृंखला के 7 वें ट्यूटोरियल तक श्रृंखला को अपडेट किया। अब प्रोजेक्ट.क्लज में डोमिन 1.0.2-एसएनएपीएसएचओटी को अपडेट करके सुरक्षित रहना चाहिए: निर्भरताएं और project.cljs में lein-cljsbuild 0.3.0: plugins।

goog.require नहीं पा सके: डोमिना

उदाहरण (ध्यान दें

Mimmo

1

बस को जोड़ने के लिए है कि नाम स्थान में कोई गलती एक ही त्रुटि संदेश ट्रिगर करेगा चाहते हैं आधुनिक-cljs में "जे" गायब):

(ns modern-cls.login 
    (:use [domina :only [by-id value]])) 

मैं उपयोग कर रहा था एक अलग परियोजना नाम इस प्रकार एक अलग नामस्थान बस बहादुर होने के लिए। यह मेरे पिछवाड़े में थोड़ा जब मैं गाइड से प्रतिलिपि चिपकाया और त्रुटि मुझे थोड़ी देर :)

3

इसके अलावा, सुनिश्चित करें कि आप अपने project.clj फाइल सेव की है बनाने के लिए और lein clean और lein cljsbuild clean चलाने की कोशिश के लिए हैरान था।

0

"आधुनिक सीएलजेएस" ट्यूटोरियल के माध्यम से काम करते समय मैं इसी मुद्दे में भाग गया। मेरी समस्या अनजाने में "डोमिन" निर्भरता को जोड़ रही थी: निर्भरता अनुभाग के बजाय project.clj के प्लगइन्स अनुभाग।

0

मुझे index.html फ़ाइल में सही क्रम में लाइनों को डालकर इस त्रुटि संदेश को पार कर गया।

सही क्रम:

<script src="js/expanding_gases.js" type="text/javascript"></script> 
<script type="text/javascript">goog.require("expanding_gases.flow_gases");</script> 

गलत आदेश:

<script type="text/javascript">goog.require("expanding_gases.flow_gases");</script> 
<script src="js/expanding_gases.js" type="text/javascript"></script> 

वैसे समझ 'goog' संदेश के लिए एक अच्छा पढ़ा यहाँ है: https://github.com/clojure/clojurescript/wiki/Quick-Start

संबंधित मुद्दे