Moja biblioteka jQuery jest ładowana, ale ja "mdostaję niezdefiniowany błąd dla innych modułów, które importuję, większość z nich ma zależność od jQuery, w której się umieszczam. Czy ktoś może mi powiedzieć, dlaczego wszystkie moje inne moduły są niezdefiniowane?
requirejs.config({
baseUrl: "js",
shim: {
"jqueryui": ["jquery"],
"dynatree": ["jquery"],
"noty" : ["jquery"]
},
paths: {
jquery: "vendor/jquery",
jqueryui: "vendor/jqueryui",
dynatree: "../includes/dynatree/jquery.dynatree.min",
jsPlumb: "../includes/jsPlumb/dist/js/jquery.jsPlumb-1.5.5-min",
noty: "../includes/noty/packaged/jquery.noty.packaged.min"
}
});
requirejs(["jquery", "jqueryui", "dynatree", "jsPlumb", "noty"],
function ( $, jqueryui, dynatree, jsPlumb, noty ) {
console.log("hello", $, noty, jsPlumb, dynatree);
});
Odpowiedzi:
1 dla odpowiedzi № 1jquery ui
nie eksportuje niczego, używa tego samego jquery
symbol. Powiedziałbym, że to samo dotyczy reszty bibliotek.
Nawet w przypadku, gdyby coś wyeksportowali, to nie zadziała, ponieważ nie ustawiasz symbolu eksportu dla podkładek. Tutaj masz przykład podkładki z eksportem
shim: {
"backbone": {
deps: ["underscore", "jquery"],
//Once loaded, use the global "Backbone" as the module value.
exports: "Backbone"
},
}
Zamieniam twój kod na
requirejs(["jquery", "jqueryui", "dynatree", "jsPlumb", "noty"],
function ($) { // $ is the only symbol that needs to be used
});