J'ai rattrapé mon retard sur l'écosystème JS moderne côté client et j'ai lu sur les systèmes de modules tels que CommonJS et AMD (y compris les outils associés - browserify, requirejs, onejs, jam, des douzaines d'autres). Si j'écris une bibliothèque Javascript, comment dois-je l'empaqueter pour qu'elle soit le plus largement accessible (idéalement par des utilisateurs qui ne jurent que par CommonJS, AMD, et surtout ni l'un ni l'autre) ?
Les bibliothèques populaires comme jQuery semblent utiliser la concaténation de fichiers à l'ancienne pour se construire elles-mêmes et détecter dynamiquement si elles doivent écrire dans une exportation ou dans le contexte global. Je fais actuellement la même chose, mais le principal inconvénient est que si (contrairement à jQuery) je 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 de l'espace de noms global.
Ou peut-être est-il plus propre de générer plusieurs versions de ma bibliothèque, pour chaque contexte ?
Cela concerne également l'emballage et l'édition. Il existe plusieurs systèmes, mais je crois que le principal est bower, qui est facile à gérer puisque tout ce qu'il fait est de récupérer. Cependant, si je veux l'empaqueter pour un composant, cela nécessite un module CommonJS.
Y a-t-il d'autres aspects pertinents que je devrais connaître ? Existe-t-il de bons exemples de projets à suivre dans ce domaine ?