मैं एक मौजूदा requireJS परियोजना जो पहले से ही knockoutJS का उपयोग करता है में breezeJS को एकीकृत कर रहा हूँ। मैं कुछ समस्याओं में भाग गया।BreezeJS और RequireJS काम नहीं कर के रूप में की उम्मीद
पहला यह था कि हवा क्यू लाइब्रेरी को लोड करने में असमर्थ है जब तक कि मैं इसे अपने एचटीएमएल रैपर पर <script>
टैग के रूप में शामिल नहीं करता, लोड एएमडी निर्भरता के रूप में नहीं। मेरी प्रोजेक्ट में मैं अपना कोड एक स्क्रिप्ट टैग पर रखने की कोशिश कर रहा हूं, इसलिए यह आदर्श नहीं है।
दूसरा मुद्दा यह है कि breezeJS नॉकआउट लोड करने में असमर्थ है। मेरी main.js में मैं एक पथ को परिभाषित किया है नॉकआउट होने के लिए:
knockout: '../libs/knockout/knockout-2.2.0',
(मैं यह कर, क्योंकि मुझे यकीन है कि के लिए जानते हुए भी कि मैं एक वैश्विक ko
तक पहुँचने नहीं कर रहा हूँ की तरह)
हालांकि जब मैं मेरी परियोजना में जोड़ा हवा, हवा मेरी नॉकआउट पुस्तकालय लोड करने में सक्षम नहीं था। हवा कोड में देखकर मैं देख सकता हूं कि इसे नॉकआउट लाइब्रेरी को ko
के रूप में लोड करने के लिए हार्डकोड किया गया है।
मेरे सभी कोड को बदलने की इच्छा नहीं है, मैंने पाया कि मैं अपनी एएमडी लोड नॉकआउट लाइब्रेरी को वैश्विक विंडो ऑब्जेक्ट में window['ko']
के रूप में जोड़ सकता हूं। लेकिन यह काफी बोझ की तरह लगता है। इसके अलावा निराले ढंग से क्यू इस तरह से जोड़ने और हटाने के <script>
टैग काम नहीं किया, के रूप में मुझे लगता है कि क्यू भी आवेदन के जीवन चक्र के शुरू में आवश्यक है, पहले भी मैं वैश्विक अपवित्र करने के लिए मिल - मैं घोंसला किया main.js में मेरी require()
कॉल लेकिन यह है कि निर्माण प्रक्रिया से मेरी अधिकांश आवेदन फ़ाइलों को छुपाया, इसलिए मैंने उस दृष्टिकोण को त्याग दिया।
कैसे मैं अपने प्रोजेक्ट में क्यू और नॉकआउट और हवा शामिल कर सकते हैं और अभी भी पल मैं एक अलग <script>
टैग के रूप में क्यू शामिल हैं और वैश्विक अपवित्र खेलने के लिए हवा और नॉकआउट प्राप्त करने के लिए करने के लिए हो रहा है पर, एक ही पंक्ति <script>
टैग का उपयोग अच्छी तरह से।
मैं अपने प्रोजेक्ट और उनमें से कोई में काफी कुछ अन्य पुस्तकालयों का उपयोग कर रहा में एकीकृत करने के लिए इस मुश्किल हो गया है।
किसी भी मदद की बहुत सराहना कर रहा है
चीयर्स
Gav
संपादित करें: यहां मेरी पूर्ण आवश्यकता कॉन्फ़िगरेशन है:
require.config({
/**
* shims are for 3rd party libraries that have not been written in AMD format.
* shims define AMD modules definitions that get created at runtime.
*/
shim: {
'jqueryUI': { deps: ['jquery'] },
'jqueryAnimateEnhanced': { deps: ['jqueryUI'] },
'jqueryScrollTo': { deps: ['jquery'] },
'touchPunch': { deps: ['jquery'] },
//'Q': { exports: 'Q' },
//'breeze': { deps: ['Q', 'knockout'], exports: 'breeze' },
'path': { exports: 'Path' },
//'signalR': { deps: ['jquery'] },
},
paths: {
//jquery
jquery: '../libs/jquery/jquery-1.7.2.min',
'jquery.adapter': '../libs/jquery/jquery.adapter',
//jquery plugins
horizontalNav: '../libs/jquery/plugins/horizontalNav/jquery.horizontalNav',
jqueryUI: '../libs/jquery/plugins/jquery-ui/jquery-ui-1.9.2.custom',
jqueryAnimateEnhanced: '../libs/jquery/plugins/animate-enhanced/jquery.animate-enhanced',
touchPunch: '../libs/jquery/plugins/touch-punch/jquery.ui.touch-punch.min',
//jqueryScrollTo: '../libs/jquery/plugins/jquery-scrollTo/jquery.scrollTo.min',
//reveal: '../libs/jquery/plugins/reveal/jquery.reveal',
//opentip: '../libs/jquery/plugins/opentip/opentip-jquery',
//RequireJS
domReady: '../libs/require/plugins/domReady',
text: '../libs/require/plugins/text',
async: '../libs/require/plugins/async',
depend: '../libs/require/plugins/depend',
json: '../libs/require/plugins/json',
noext: '../libs/require/plugins/noext',
//coffee-script
'coffee-script': '../libs/coffee/coffee-script',
cs: '../libs/require/plugins/cs',
//Path
path: '../libs/path/path.min',
//Knockout
knockout: '../libs/knockout/knockout-2.2.0',
knockoutTemplateSource: '../libs/knockout/ko.templateSource',
knockoutValidation: '../libs/knockout/ko.validation',
//breeze
Q: '../libs/breeze/q',
breeze: '../libs/breeze/breeze.debug',
//Signals (Observer pattern)
signals: '../libs/signals/signals',
//SignalR - Push notifications
signalR: '../libs/signalR/jquery.signalR-0.5.2.min',
//utils
logger: 'common/logging/logger',
tinycolor: '../libs/tinycolor/tinycolor',
composing: 'common/composition/composing',
//app specific
BaseWidgetViewModel: 'app/view/core/BaseWidgetViewModel',
}
});
उत्तर आ रहा है। मेरे पास सबसे अधिक है। एक टुकड़ा गुम है बने रहें। – Ward