Forum Programmation.web js : AMD Loader, vos expériences ?

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
30
mai
2013

hello,

En javascript les gestionnaire de dépendances sont devenus obligatoire.

RequireJS
Je sors d'un projet où j'en ai fais le choix.

Bof.

Il fait le job, avec un coût non négligeable.
D'une manière générale j'en comprend que c'est un outil orienté commonJS et webapp,

Ne pratiquant ni l'un, ni l'autre, cela me pose évidemment quelques soucis.

Des choses assez simple finalement,
- il est extrêmement gras et lourd, même après la minification
- il faut alors utiliser son alter ego AlmundJS, une librairie qui est compatible avec celui ci et le remplace à la compilation
- Cpdt AlmundJS oblige à compiler statiquement toutes les dépendance de la cible,
- de plus et surtout, il ne sait pas charger les dépendances au runtime.

Ce qui, dans une première approche, amène à créer de volumineux fichiers JS unique par template de page.
Remarquez que cela convient très bien au webapp, puisqu'elles sont mono page.
Dans le cas contraire, cela pète le système de cache des navigateurs,
en effet plusieurs portions de codes sont dupliquées dans plusieurs ressources.

Une deuxième approche est de maintenir des règles de build plus fine, plus compliquées.
Hors je n'aimes ni la lourdeur, ni la gestion…

amha
RequireJS est donc très intrusif et dirigiste,
Si vous optez pour Almund à la compilation, l'outil devient très rigide, c'est au forceps que vous en compenserez les défauts
Si vous choisissez de garder RequireJS, ce sera obligatoirement plus lourd, mais il n'est pas garantit que la stratégie de cache compense alors suffisamment le défaut n°1

En bout de course, il est peu aisé d'arriver à produire une build 100% satisfaisante dans le cadre qui m'est donné avec cet outil.

La prochaine étape, tester d'autres loader.
Notamment stealJS, qui me semble résoudre certains de mes problèmes.

Mais tant qu'à faire que me conseillez vous ?

a+

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.