2014-06-30 3 views
0

Je travaille avec RequireJs et je suis nouveau pour ça. J'ai un projet existant et du code JavaScript et maintenant je change ce code dans les modules à utiliser dans RequireJS. De nombreuses API tierces sont utilisées dans mon projet comme Bootstrap, JQuery & slickgrid etc. qui ne sont pas AMD (définition de module asynchrone). Je sais que les fichiers non-AMD Js sont nécessaires pour charger avec la commande comme caleCommande Shim fonctionnant dans RequireJS

requirejs.config({ 
baseUrl: 'js/lib', 
paths: { 
    app: '../app' 
}, 
shim: { 
    backbone: { 
     deps: ['jquery', 'underscore'], 
     exports: 'Backbone' 
    }, 
    underscore: { 
     exports: '_' 
    } 
    } 
}); 

mais je ne sais pas comment ne fonctionne et shim son avantage. Ne pouvons-nous pas simplement inclure ces fichiers js façon conventionnelle comme tag? Quelqu'un peut-il m'expliquer s'il vous plaît comment ça marche? Aussi, je veux charger mes fichiers non-AMD avec commande shim comment puis-je les charger? Mes fichiers js ont des dépendances sur eachother donc ai-je besoin d'écrire la commande

deps: ['file1', 'file2'] 

pour eachfile au sein du commandement de cale? Ce serait très complexe car j'ai plus de 20 fichiers JS. Y a-t-il une meilleure façon de faire cela? S'il vous plaît laissez-moi savoir si je manque quelque chose ou je me trompe. Je serai très reconnaissant pour tout type de soutien.

Répondre

1

C'est un doute très commun, dans votre cas, vous devez avoir Jquery, Underscore et Backbone dans la configuration des chemins à utiliser spécifiez d'où require exigera les fichiers JS. Ensuite, à l'intérieur du bloc Shim, vous pouvez spécifier vos dépendances et comment vous souhaitez l'utiliser dans votre application (exportations).

Pour comprendre comment fonctionne Shim, je vous suggère de lire cet article - http://aaronhardy.com/javascript/javascript-architecture-requirejs-dependency-management/

Ou require JS site web.

http://requirejs.org/docs/api.html#config-shim

Hope it helps.