2016-01-08 10 views
11

क्या यह संभव है? उदाहरण के लिए, myOpenGL एक पैकेज है और openGL एक ऐप है।ExtJS - एक ऐप में कक्षाओं को विस्तारित करके एक पैकेज बनाना

मैं इस तरह कुछ करने के लिए करना चाहते हैं:

Ext.define('myOpenGL.view.Qxga',{ 
    extend: 'openGL.view.Uxga', 
    alias: 'widget.qxga', 
    itemId: 'qxga', 
    requires: [ 
      'openGL.view.Uxga', 
      'myOpenGL.view.QxgaController' 
    ], 
    controller: 'QxgaController' 
}); 

इस तरह फ़ाइलों का आयोजन किया जाता है (सबसे स्पष्टता के लिए छोड़े गए फ़ाइलें):

workspace/ 
    packages/ 
     myOpenGL/ 
      .sencha/ 
      src/ 
       view/ 
        qxga.js <--- the file defining QXGA 
      package.json 
      build.xml 
    openGL/ 
     .sencha/ 
      app/   <--- errors are being generated from here?    
     app/ 
      view/ 
       uxga.js <--- the file with the class I want to extend 
     app.json 
     build.xml 
     ... 

अभी मैं अनसुलझे निर्भरता त्रुटियों मिल , लेकिन वे पैकेज के विरोध में ऐप से उत्पन्न हो रहे हैं (The following error... के बाद देखें):

[ERR] Failed to resolve dependency openGL.view.Uxga for file myOpenGL.view.Qxga 
[ERR] 
[ERR] BUILD FAILED 
[ERR] com.sencha.exceptions.ExNotFound: Unknown definition for dependency : openGL.view.Uxga 
[ERR] 
[ERR] Total time: 6 seconds 
[ERR] The following error occurred while executing this line: 
C:\Users\«username»\Applications\Sencha\Cmd\5.1.0.26\plugins\ext\current\plugin.xml:403: The following error occurred while executing this line: 
C:\Users\«username»\Documents\workspace\openGL\.sencha\app\build-impl.xml:378: The following error occurred while executing this line: 
C:\Users\«username»\Documents\workspace\openGL\.sencha\app\init-impl.xml:303: com.sencha.exceptions.ExNotFound: Unknown definition for dependency : openGL.view.Uxga 

कुछ सवाल:

  • क्यों त्रुटियों workspace\openGL\.sencha\app से पैदा कर रहे हैं? यह packages\myOpenGL है जिसे मैं बनाने की कोशिश कर रहा हूं। मैं त्रुटियों को उत्सर्जित करने के लिए packages से init-impl.xml की अपेक्षा करूंगा।
  • मैं openGL/app को संशोधित नहीं कर सकता, जैसा कि उपयोग करना चाहिए, लेकिन packages में कुछ भी संशोधित कर सकता है। इसके अलावा मैं openGL नहीं ले जा सकता लेकिन packages में इसे शॉर्टकट बना सकता हूं, या openGL/overrides में ओवरराइड बना सकता हूं। यह जानकर, क्या मैं इसे काम करने के लिए एक रास्ता प्राप्त कर सकता हूं?

उत्तर

2

आमतौर पर, उच्च स्तर पर, निर्माण प्रक्रिया है: पैकेज, फिर पैकेज ओवरराइड, फिर ऐप्स, फिर ऐप ओवरराइड। यदि आपका पैकेज ऐप कोड में खींच रहा है, तो यह निर्भरता के कारण सभी ऐप खींचने के सिद्धांत में समाप्त हो सकता है, जिससे बिल्ड प्रक्रिया को गड़बड़ कर दिया जा सकता है। शायद यही कारण है कि आप ऐप से उत्पन्न त्रुटियों को देख रहे हैं।

एक समाधान यह है कि आपको अपने पैकेज में आवश्यक ऐप कोड कॉपी करना, नामस्थान बदलें, निर्भरता सीमित करें, और इस तरह इसका उपयोग करें।

एक अन्य समाधान ऐप प्रदाता को पैकेज के रूप में आवश्यक कार्यक्षमता को पुनर्गठित करने के लिए प्राप्त करना है! यही है, पुन: उपयोग करने योग्य पुन: प्रयोज्य बनाना चाहिए।

किसी भी मामले में, यह बहुत काम है, लेकिन खराब डिजाइन हमेशा आपको काटने के लिए वापस आता है!

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