Sto lavorando con requirejs + jquery e mi chiedevo se ci fosse un modo intelligente per far funzionare bene un plugin jQuery con require.Come rendere un plugin jQuery caricabile con requirejs
Ad esempio sto utilizzando jQuery-cookie. Se ho capito bene che posso creare un file chiamato jquery-cookie.js e dentro fare
define(["jquery"], // Require jquery
function($){
// Put here the plugin code.
// No need to return anything as we are augmenting the jQuery object
});
requirejs.config({
"shim": {
"jquery-cookie" : ["jquery"]
}
});
mi sono chiesto se ho potuto fare le cose come jQuery fa, che è come questo:
if (typeof define === "function" && define.amd && define.amd.jQuery) {
define("jquery", [], function() { return jQuery; });
}
o se questo è l'unico modo per rendere i plugin jQuery compatibile con requirejs o qualsiasi amd
Se non faccio sia la definiscono e le cose shim non funzionano, ottengo $ .cookie non è un messaggio di errore di funzione –
Secondo la mia esperienza, non restituire nulla dalla funzione di definizione non è sufficiente, requirejs non riconoscerà che il modulo è stato caricato.Questo può essere risolto da shim: { plugins: { dipende: ['jquery'], esportazioni: 'plugins' } – honzajde
Si noti che lo script del plug-in jQuery deve essere effettivamente eseguito Non sono esperto ma ho trovato una soluzione semplice in cui si ha un singolo 'require ([ 'plugin1', 'plugi n2 ']); 'ecc. Non viene passata alcuna richiamata, quindi non verrà eseguito nulla tranne gli script del plugin stessi. Ciò significa che si aggiungeranno a 'jQuery.fn', quindi in qualsiasi altro modo è possibile elencare 'jquery' come dipendenza e saranno inclusi. Come ho già detto, sono abbastanza nuovo a questo e potrebbe esserci un approccio migliore (come l'uso di un tag 'script'), ma funziona. –