कॉर्डोवा 2.4.0 और ऊपर जावास्क्रिप्ट में लोड करने के लिए एएमडी का समर्थन करता है। मैं विशेष रूप से RequjS, रीढ़ की हड्डी, jquery, jquery मोबाइल के नवीनतम संस्करण के साथ कॉर्डोवा 2.5.0 का उपयोग करने के लिए देख रहा हूँ।कॉर्डोवा 2.4.0 या 2.5.0 या 2.6.0 और requjs
मुझे अभी तक कोई ट्यूटोरियल नहीं देखना है या कॉर्डोवा के नए संस्करण को आवश्यकतानुसार उचित तरीके से उपयोग करने के बारे में पोस्ट करना है। मुझे कॉर्डोवा को कैसे शामिल किया जाए और कॉर्डोवा ने एएमडी (2.3.0 और इससे पहले) का समर्थन नहीं किया था, इसके बारे में कई पोस्ट देखे।
यदि कोई मुझे इस के एक साधारण उदाहरण पर पोस्ट या पॉइंट कर सकता है, तो इसकी सराहना की जाएगी।
संपादित करें: विशेष रूप से मैं आईओएस के लिए विकास को लक्षित कर रहा हूं।
संपादित करें: मैं और अधिक विशिष्ट होना चाहता हूं और उस सटीक समस्या को शामिल करना चाहता हूं जिसमें मैं भाग रहा हूं।
main.js
require.config({
paths: {
cordova: 'libs/cordova/cordova.ios',//cordova-2.5.0',//2.5.0*/
jquery: 'libs/jquery/jquery.min',//1.9.1
text: 'libs/require/text',
domReady: 'libs/require/domReady',
underscore: 'libs/underscore/underscore-min',
backbone: 'libs/backbone/backbone-min',
'jquery.mobile-config': 'libs/jquery-mobile/jqm-config',
'jquery.mobile': 'libs/jquery-mobile/jquery.mobile.min'
},
shim: {
backbone: {
deps: ['jquery', 'underscore'],
exports: 'Backbone'
},
underscore: {
exports: '_'
},
'jquery.mobile': {
deps: ['jquery', 'jquery.mobile-config']
}
}
});
require(['app'], function(App){
App.initialize();
});
app.js
define([
'cordova',
'jquery',
'underscore',
'backbone',
'router'
], function(cordova, $, _, Backbone, Router){
var initialize = function(){
Router.initialize();
}
return {
initialize: initialize
};
});
स्पष्ट है कि, सब कुछ ठीक काम करता है इससे पहले कि मैं require.js परियोजना को अनुकूलित करें। जब मैं r.js (require.js का हिस्सा) के साथ प्रोजेक्ट को अनुकूलित करने का प्रयास करता हूं, तो ऑप्टिमाइज़र एक त्रुटि फेंकता है जिसे नीचे देखा जा सकता है।
मुझे यकीन है कि क्या channel.js है, और क्यों यह इसके लिए पूछ रहा है नहीं हूँ, लेकिन मैं यहाँ https://github.com/apache/cordova-js/tree/master/lib/common
एक बार मैं उप-डायरेक्टरी बनाएँ यह है GitHub पर यह पता लगाने के लिए सक्षम था खोज रहे हैं, मैं इसमें channel.js फ़ाइल डालता हूं। मुझे अब यह त्रुटि नहीं मिलती है, लेकिन अब नीचे एक अलग देखा गया है।
मैं भी कॉर्डोबा-js GitHub साइट पर उस फ़ाइल को खोजने के लिए सक्षम था। एक बार जब मैं उस फ़ाइल को उपनिर्देशिका में रखूं, तो मुझे कोई त्रुटि संदेश नहीं मिलता है और प्रोजेक्ट सफलतापूर्वक बनाता है।
अब जब मैं एकल अनुकूलित जेएस फ़ाइल का उपयोग कर एप्लिकेशन चलाने की कोशिश करता हूं, तो मुझे यह त्रुटि जावास्क्रिप्ट कंसोल में मिलती है, और डिवाइस पर बस एक खाली सफेद स्क्रीन मिलती है।
"ReferenceError: निर्यात: चर नहीं खोजा जा सका"
यहाँ मेरी build.js फ़ाइल है मैं अनुकूलन
({
baseUrl: "../js",
mainConfigFile: "../js/main.js",
name: "../js/main",
out: "../js/big.js",
preserveLicenseComments: false,
paths: {
requireLib: "../js/libs/require/require"
},
include: "requireLib"
})
संपादित 4/11/13 को चलाने के लिए उपयोग कर रहा हूँ: उत्तर एसए उपयोगकर्ता asgeo1 की मदद के लिए धन्यवाद, मुझे मेरी समस्या हल हो गई। यह पता चला है कि आप main.js 'cordova' में चर का नाम नहीं दे सकते क्योंकि यह 'कॉर्डोवा' नामक एक आंतरिक चर के साथ संघर्ष करता है।
समाधान नीचे है।
मुख्य।js
require.config({
paths: {
'cordova.ios': 'libs/cordova/cordova.ios',//cordova-2.5.0' THIS IS CHANGED
jquery: 'libs/jquery/jquery.min',//1.9.1
text: 'libs/require/text',
domReady: 'libs/require/domReady',
underscore: 'libs/underscore/underscore-min',
backbone: 'libs/backbone/backbone-min',
'jquery.mobile-config': 'libs/jquery-mobile/jqm-config',
'jquery.mobile': 'libs/jquery-mobile/jquery.mobile.min'
},
shim: {
backbone: {
deps: ['jquery', 'underscore'],
exports: 'Backbone'
},
underscore: {
exports: '_'
},
'jquery.mobile': {
deps: ['jquery', 'jquery.mobile-config']
}
}
});
require(['app'], function(App){
App.initialize();
});
app.js
define([
'cordova.ios',//THIS IS CHANGED
'jquery',
'underscore',
'backbone',
'router'
], function(cordova, $, _, Backbone, Router){
var initialize = function(){
Router.initialize();
}
return {
initialize: initialize
};
});
यह समाधान काम करता है और, एक ही विकल्प है Cordova 2.5.0 और 2.6.0
मैं एक बार requirejs साथ कॉर्डोबा 2.2.0 का उपयोग किया है। पता नहीं है कि यह अभी भी नए संस्करणों पर लागू होता है, लेकिन यह आपकी मदद कर सकता है: http://stackoverflow.com/a/13955963/1916258 – asgoth
जैसा कि मैंने अपने ओपी में उल्लेख किया है, कॉर्डोवा 2.4.0 और अब इसकी क्षमता है requjs के साथ आलसी लोड करने के लिए। यह विशेष रूप से मैं क्या करना चाहता हूं। कहा जा रहा है, मैंने आपकी विधि की कोशिश की और यह काम नहीं किया। जब मैं r.js. के साथ कोड अनुकूलित करता हूं तो मुझे मुख्य रूप से समस्याएं आ रही हैं यह दो त्रुटियों को फेंक देता है जो कि 2 .js फाइलें हैं जो कॉर्डोवा पर निर्भर हैं। मैंने उन 2 फाइलों को जिथब पर पाया, और जब मैं उन्हें संरचना में रखता हूं तो यह अनुकूलित होता है, लेकिन कोड त्रुटियों को फेंकता है और ऐप डिवाइस/सिम पर नहीं चलता है। कोड को अनुकूलित करने से पहले मुझे किसी भी त्रुटि का अनुभव नहीं होता है। – njtman
Woha jtman, मैं तुम मुझे खोज के घंटे बचा लिया लगता है। एक ही मुद्दा मिला :-) – codevour