J'ai rattrapé l'écosystème JS côté client moderne et lu sur CommonJS et AMD (y compris les outils associés - browserify, requirejs, onejs, jam, des dizaines d'autres). Si j'écris une bibliothèque Javascript, comment la modulariser / empaqueter pour qu'elle soit la plus largement accessible (idéalement par les utilisateurs qui ne jurent que par CommonJS, AMD, et surtout aucun)?
Les bibliothèques populaires comme jQuery semblent simplement utiliser la concaténation de fichiers à l'ancienne pour se construire et détecter dynamiquement si elles doivent écrire dans un exports
contexte global ou. Je fais actuellement la même chose, mais le principal inconvénient est que si je (contrairement à jQuery) dépend de quelques bibliothèques, il est agréable de ne pas avoir à demander aux utilisateurs de pré-inclure manuellement l'ensemble transitif. (Bien que je n'ai actuellement que deux dépendances.) Et bien sûr, la pollution globale des espaces de noms.
Ou peut-être qu'il est plus propre de générer plusieurs versions de ma bibliothèque, pour chaque contexte?
Je m'interroge également sur l'emballage et la publication. Il existe plusieurs systèmes, mais je pense que le plus important est Bower, qui est facile à gérer car il ne fait que chercher. Cependant, je me demande si je devrais également cibler d'autres systèmes de package comme le composant (qui nécessite CommonJS).
Y a-t-il d'autres aspects pertinents dont je devrais être conscient? Y a-t-il de bons exemples de projets à suivre pour tout cela?