/ / RequireJS + oCanvas avec des fonctions auto-appelantes - javascript, requirejs, amd

RequireJS + oCanvas avec des fonctions auto-appelantes - javascript, requirejs, amd

J'ai des problèmes avec oCanvas - il ne supporte pas AMD out of box alors dans RequireJS, je définis un shim: configuration.js

require(
function () {
requirejs.config({
shim: {
"lib/ocanvas": {
exports: ["oCanvas"]
}
}
});
}
);

La façon dont je charge la configuration liée à shim (je pense que c’est suffisant pour l’ajouter à require au fichier de point d’entrée):

require(["configuration","main"],
function (configuration, main) {
main.startUniverse();
}
);

Le problème est que je ne peux pas obtenir le oCanvas objet dans mes fichiers JS:

define(["lib/ocanvas"],
function (oCanvas) {}

Il semble indéfini ici. Dans o sources Canvas Je vois qu'il y a 2 fonctions auto-appelantes et elles mettent la oCanvas objet en état global comme ça: window.oCanvas = oCanvas. Peut-être que cela ne fonctionne pas pour RequireJS?

Réponses:

1 pour la réponse № 1
require(
function () {
requirejs.config({
shim: {
"lib/ocanvas": {
exports: "oCanvas"
}
}
});
}
);

Essayez de passer comme une chaîne pas un tableau?


0 pour la réponse № 2

Au lieu de requirejs.config J'utilise maintenant require.config et passez un objet là-bas:

require.config({
shim: {
"lib/ocanvas": {
exports: "oCanvas"
}
}
});

Cela a fonctionné pour moi.