मेरा प्रश्न, जबकि पहले कुछ हद तक this one जैसा लगता है, यह एक और बुनियादी सवाल है - और बिल्ड सिस्टम में एक बग संकेत दे सकता है। मैंने अपने डोजो एप्लिकेशन के लिए कस्टम बिल्ड बनाया है। मैं केवल एक परत का निर्माण अभी, यहाँ क्या प्रोफ़ाइल स्क्रिप्ट/वस्तु लग रहा है जैसे:डोजो एनएलएस के साथ बनाएँ - आवश्यकताएंकरण (..) असफल?
dependencies = {
stripConsole: "all",
action: "release",
optimize: "shrinksafe",
releaseName: "myProject",
// list of locales we want to expose
localeList: "en-gb,en-us,de-de",
layers: [
{
// Name: a relative path from the dojo.js in the desination directory.
name: "../../myProject.js",
dependencies: [
"myPackage.MyDataStore",
// MyWidget depends on a few other widgets, and has its own
// translation files.
"myPackage.MyWidget"
]
}
],
prefixes: [
// These paths are relative to the location of dojo.js
[ "dijit", "../dijit" ],
[ "dojox", "../dojox" ],
[ "myPackage", "../../../src/myPackage" ]
]
}
जब मैं उस वर्णन यह निम्नलिखित निर्देशिका संरचना में फ़ाइलों को आउटपुट के साथ एक निर्माण चलाएँ:
release/
release/myProject/
release/myProject/dijit/
... dijit ...
release/myProject/dojo/
... dojo ...
release/myProject/dojox/
... dojox ...
release/myProject/myPackage/
... my custom package ...
release/nls/
myProject_en-us.js
myProject_de.js
etc..
../myproject.js
../myProject.js.uncompressed.js
अंत में
<script type="text/javascript">
var djConfig = {
debug: true,
parseOnLoad: false,
modulePaths: { // paths to directories in relation to dojo's location.... hurr.
'myPackage': '../myPackage',
'dojox': '../dojox',
'dijit': '../dijit'
}
};
</script>
<script type="text/javascript" src="./release/myProject/dojo/dojo.js.uncompressed.js"></script>
<script type="text/javascript" src="./release/myProject.js.uncompressed.js"></script>
<script type="text/javascript">
dojo.addOnLoad(function(){
dojo.require('myPackage.MyDataStore');
dojo.require('myPackage.MyWidget');
var store = new myPackage.MyDataStore();
var widget = new myPackage.MyWidget({
store: store
}, dojo.byId('testWidget'));
widget.startup();
});
</script>
लेकिन दुर्भाग्य से, Firebug यह मुझ पर बाहर थूक:
-, अपने परीक्षण HTML पृष्ठ में मैं निम्नलिखित मिल गया हैBundle not found: MyWidget in myPackage , locale=en-us
मैं क्या सोचता
मैं कोड उपरोक्त त्रुटि करने के लिए अग्रणी में से कुछ के माध्यम से पता लगाया है और यह फ़ाइल के अंत में dojo.i18n._preloadLocalizations()
कॉल की तरह लगता है हो रहा है वास्तव में सही में लोड नहीं होता ./release/nls
से nls फ़ाइल।
कोई विचार यह है कि <script>
टैग के साथ एनएलएस फ़ाइलों को मैन्युअल रूप से शामिल किए बिना इसे कैसे ठीक किया जाए?
को मैं इसी तरह की समस्याओं आई है
देखें। बिल्ड सिस्टम या लोडर में कोई समस्या होने पर मुझे यह स्पष्ट नहीं है। मैंने यह निर्धारित किया कि अगर मैंने अपनी परत फ़ाइल को उसी निर्देशिका में नाम दिया है जो dojo.js (यानी, इसे "name: 'myProject.js'") बनाएं और इस पथ का उपयोग करने के लिए स्क्रिप्ट टैग को समायोजित करें (./release/ myProject/dojo/myProject.js.uncompressed.js), तो लोडर सही एनएलएस फ़ाइलों में खींचता है। – tommyjr
मुझे लगता है कि यह djConfig ऑब्जेक्ट में आपके मॉड्यूलपैथ के साथ करना है। यदि आप फायरबग या इसी तरह देखते हैं, तो कौन सा यूआरएल बनाम एनएलएस लोड करने की कोशिश कर रहा है, इसे कहां से लोड किया जाना चाहिए? –