/ / Using require js get undefined dla wszystkich modułów innych niż jquery - javascript, jquery, requirejs

Użycie js wymaga nieokreślonego dla wszystkich modułów innych niż jquery - javascript, jquery, requirejs

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 № 1

jquery 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

});