Ich benutze RequireJS 2.2.0 für mein Projekt mit folgenden Konfiguration:RequireJS Optimierer - Oracle MapViewer hat mehr als ein anonymen definieren
require.config({
baseUrl: "Scripts/js/kendo",
paths: {
"kendo.datepicker.min": "kendo.datepicker.min",
"jquery-ui": "../../lib/jquery-ui.min",
"modules": "../../modules",
"colorpicker": "../../lib/colorpicker",
"eye": "../../lib/eye",
"layout": "../../lib/layout",
"utils": "../../lib/utils",
"oraclemaps": "../../lib/oraclemapsv2"
},
shim: {
"kendo.datepicker.min": ["oraclemaps"],
"jquery-ui": ["oraclemaps"],
"colorpicker": ["jquery-ui"],
"eye": ["colorpicker"],
"layout": ["eye"],
"utils": ["layout"]
}
});
oraclemaps
ist eine dritte Partei-Bibliothek, die jQuery enthält. Ich benutze ihre Version, also habe ich Kendo und jQuery-UI Abhängigkeiten in Shim definiert. oracellemaps hat eine Komponente, die jquery-ui, colorpicker, eye, layout, and utils
in der genannten Reihenfolge benötigt. Dies habe ich auch in Shim definiert. Die Anwendung läuft gut.
Das Problem ist jetzt mit dem Optimierer. Mit der Konfiguration habe ich einen Fehler oraclemapsv2.js has more than one anonymous define
. Ich habe es gegoogelt und festgestellt, dass dies ein issue von jQuery Hammer ist (das in oraclemaps enthalten ist). Das Ausführen der App führt zu mismatched anonymous define() module
.
Ich habe versucht, OracleMaps in exclude/excludeShallow
und laden Sie es in HTML, aber ich habe Script error for "jquery", needed by: jquery-ui, kendo.core.min
.
Hier ist meine Optimierer Konfiguration:
({
baseUrl: "../js/kendo",
paths: {
"kendo.datepicker.min": "kendo.datepicker.min",
"jquery-ui": "../../lib/jquery-ui.min",
"modules": "../../modules",
"colorpicker": "../../lib/colorpicker",
"eye": "../../lib/eye",
"layout": "../../lib/layout",
"utils": "../../lib/utils",
"oraclemaps": "../../lib/oraclemapsv2"
},
shim: {
"kendo.datepicker.min": ["oraclemaps"],
"jquery-ui": ["oraclemaps"],
"colorpicker": ["jquery-ui"],
"eye": ["colorpicker"],
"layout": ["eye"],
"utils": ["layout"]
},
include: ["../../lib/require.min"],
exclude: ["oraclemaps"],
name: "../../app",
out: "../build/app-built.js"
})
Was soll ich tun? Irgendwelche Ideen?
Können Sie mir sagen, wie man dem anonymen Modul Namen hinzufügt? Hier ist zum Beispiel der Teil für Hammer. a.Hammer = e, "undefined"! = Typ des Moduls && module.exports && (module.exports = e), "function" == typeof define && define.amd? define (["jquery"], Funktion (b) {return d (a.Hammer, b)}): d (a.Hammer, a.jQuery || a.Zepto) – springrolls
Sie müssen nur den Namen als hinzufügen erster Parameter Etwas wie 'define (" Hammer ", [" jquery "], ...' – Louis
) Ich habe versucht, meine eigene jQuery zu laden und noConflict auf true zu setzen, aber es hat nicht funktioniert. Ich werde es mir nochmal anschauen, haven Ich habe es lange genug versucht. " – springrolls