В моем приложении dojo я пытаюсь динамически загружать модуль, который отлично работает, пока я не создам свой код. Как только код создается с использованием системы сборки dojo, как-то один и тот же модуль загружается как межсетевой (а именно 3), а не сам модуль.Dojo требуется загружать номер вместо модуля
Ниже приведен код, который работает т.е. перед созданием приложения
var loadModule = "MyModule.js";
var path = "./js/path/to/MyModule/";
require([path+loadModule], lang.hitch(this,function (myModule) {
//do something with myModule
//this works without any problem
}))
Теперь тот же кусок кода, когда пришел через систему додзё сборки становится чем-то, как показано ниже, и не работает
var _23 = "MyModule.js";
var _24 = "./js/path/to/MyModule/";
require([_24 + _23], _2.hitch(this, function(_25) {
//here this '_25' is number 3 instead of myModule. which i wonder why!
}))
Для системы додзё сборки я использую следующие конфигурации
layerOptimize: "shrinksafe",
optimize: "shrinksafe",
cssOptimize: "comments",
mini: true,
stripConsole: "warn",
selectorEngine: "lite",
Редактировать : Здесь, в моем приложении, модуль, который я пытаюсь загрузить динамически, отвечает за работу с картой openlayers. Базовый код для этого модуля приведен ниже
define(["dojo/_base/declare", "dojo/_base/lang", "dojo/_base/window", "dojo/dom", "dojo/dom-construct", "dojo/topic","dojo/dom-style","dojo/on",
"dijit/registry","dijit/Tooltip","dijit/TooltipDialog","dijit/popup","dijit/ConfirmDialog",
"dojox/collections/Dictionary"
],
function(declare, lang, baseWindow, dom, domConstruct, topic, domStyle, on,
registry,Tooltip,TooltipDialog,dijitPopup,ConfirmDialog,
Dictionary){
var olMapModule = {};
olMapModule.initMap = function(){
//Code for openlayer go here
};
olMapModule.initMapInteractions = function(){
//code for initiating the map interactions go here
};
return olMapModule;
});
Редактировать: запятая была помещена по ошибке. Также дело в том, что этот фрагмент кода отлично работает, прежде чем идти через сборку dojo.
Вы используете встроенный код на том же компьютере? У меня было это при использовании Windows для dev и Linux для построения ... В этом случае была ошибка ... Нижний регистр вместо верхнего – ben
Не на одной машине, хотя на одном и том же os, т. Е. Я использую ubuntu для dev, а также на машине для сборки. Также процесс сборки автоматизирован с использованием плагина maven, который завершает создание додзё в нем для создания производственной войны. – Suraj
Дополнительная запятая после '' dojox/collections/Dictionary ",' может быть причиной (в IE), но в целом у «3» есть несколько причин: 404 при запросе модуля или ошибки JS при оценке модуля – ben