Une alternative à RequireJS - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Une alternative à RequireJS (/showthread.php?tid=6339) |
Une alternative à RequireJS - Maks - 29-08-2012 J'aimerais vous présenter une alternative à RequireJS 2.0. RequireJS est aynschrone, il a donc l'avantage d'être relativement rapide. Cependant, il pose le problème des circular dependencies. Si la classe A a besoin de la classe B et inversement, comment gérer l'ordre de chargement ? Bien sûr il y a des solutions, qui font un peu rafistolage iffle: Une alternative étant de passer par la directive "shim" (remplaçant du plugin "order" de RequireJS 1.0) dans la configuration de Require afin de gérer (de façon synchrone) quel fichier doit être chargé avant l'autre. L'idéal serait d'avoir les modules CommonJS de Node dans le navigateur. C'est ce que "browserify" propose. https://github.com/substack/node-browserify Un petit rappel sur comment ça marche :
contenu de routes.js
ou bien
si l'on veut exporter un module directement sans passer par une méthode
C'est assez simple, il n'y a que 3 mots clés : require, module et exports (les mêmes que pour RequireJS). Donc pour en revenir à browserify, il permet d'obtenir ce mode de fonctionnement dans le navigateur. Un exemple concret : https://github.com/substack/node-browserify/tree/master/example/simple-build/js Plus fort encore, il permet d'utiliser les modules de Node dans le browser à l'aide d'une librairie supplémentaire : https://github.com/substack/js-traverse Ainsi on peut carrément utiliser la machine virtuelle de Node dans le navigateur : https://github.com/substack/vm-browserify Et d'autres libraires utiles comme assert, path, crypto... |