2012-12-12 18 views
5

यदि मैं "नेमस्पेस: 'foo' 'ध्वज के बिना ऑप्टिमाइज़र चलाता हूं तो सब कुछ अपेक्षित काम करता है। जब मैं "नाम स्थान: 'foo'" जोड़ने app.build.js में मैं इस त्रुटि मिलती है:RequJS + jQuery नेमस्पेस समस्या

GET: file:// (path to the project) /require-jquery/jquery-require-sample/webapp/jquery.js
main-built.js:main-built.js:1839

Uncaught Error: Script error http://requirejs.org/docs/errors.html#scripterror
main-built.js:163

मैं एक समाधान के लिए चारों ओर देखा है, लेकिन वहाँ RequireJS अनुकूलक का उपयोग कर एक एकल फाइल का निर्यात करने पर बहुत कम जानकारी है , jquery, और एक नामस्थान के साथ। धन्यवाद!

मैं RequireJS + jQuery नमूना परियोजना on github here.

({ 
    baseUrl: ".", 
    out: 'main-built.js', 
    //Comment out the optimize line if you want 
    //the code minified by UglifyJS 
    optimize: "none", 

    paths: { 
     "jquery": "require-jquery" 
    }, 

    name: 'main', 
    namespace: 'foo' 
}) 

उत्तर

0

बजाय नाम पैरामीटर को हटाने (जब तक आप वास्तव में इसकी जरूरत) की कोशिश करो (एक संशोधित app.build.js और app.html के साथ) डाल दिया है।

0

मुझे पता है कि मैं यहां पार्टी के लिए देर हो चुकी हूं, लेकिन यह थ्रेड सिर्फ गुगलिंग से ढूंढना आसान है।

jquery में एएमडी का पता लगाने है। आप requjs के लिए नेमस्पेस का उपयोग कर रहे हैं, और इससे define फ़ंक्शन की सभी कॉल में कुछ बदलाव आते हैं।

यह है कि बस टूट जाता है यह jQuery में एक परिवर्तन का कारण बनता है (या बस वास्तविक कोड को परिभाषित है, लेकिन अपने namespaced कॉल वैसे भी काम नहीं करेगा)

मैं वर्तमान में कि इस मुद्दे से लड़ने कर रहा हूँ। मैं निम्नलिखित विकल्पों देखें:

  1. उपयोग jQuery विश्व स्तर पर, यह की तरह 2005
  2. हैक एएमडी का पता लगाने के लिए एक शिम को समझने
  3. हैक एक साथ jQuery बनाने के लिए करने के लिए नेमस्पेसिंग की आवश्यकता होती है यह काम

मैं तीसरे विकल्प को आजमाएं और रिपोर्ट करें कि

[संपादित करें]

नेमस्पेसिंग शिम के अंदर भी काम करता है :(यह कोई समझ नहीं आता है, लेकिन यह बस करता है। अभी तक मुझे कोई विचार नहीं है कि इसे शिम के साथ कैसे काम करना है और बिना किसी बदलाव के। यदि आप jquery के साथ झुकाव करना चाहते हैं, तो अंत में एक रेखा है जो define एएमडी मॉड्यूल को परिभाषित करने के लिए एक फ़ंक्शन है। इस लाइन को तोड़ें (उदाहरण के लिए false && जोड़कर) और आपके पास एक काम करने वाला शिम है।