Nadrabiam zaległości w nowoczesnym ekosystemie JS po stronie klienta i czytam o CommonJS i AMD (w tym powiązanych narzędziach - Browserify, wymagania, onejs, jam, dziesiątki innych). Jeśli piszę bibliotekę JavaScript, jak mogę ją zmodularyzować / spakować w taki sposób, aby była jak najszerzej dostępna (najlepiej dla użytkowników, którzy przysięgają na CommonJS, AMD, a zwłaszcza żaden)?
Wydaje się, że popularne biblioteki, takie jak jQuery, używają old-schoolowej konkatenacji plików do samodzielnego budowania i dynamicznie wykrywają, czy powinny pisać exportsw kontekście globalnym, czy też. Obecnie robię to samo, ale głównym minusem jest to, że jeśli (w przeciwieństwie do jQuery) polegam na kilku bibliotekach, miło jest nie prosić użytkowników o ręczne wstępne włączenie zestawu przechodniego. (Chociaż obecnie mam tylko dwie zależności.) I oczywiście globalne zanieczyszczenie przestrzeni nazw.
A może najczystsze jest generowanie wielu wersji mojej biblioteki dla każdego kontekstu?
Zastanawiam się także nad pakowaniem i publikowaniem. Istnieje kilka systemów, ale uważam, że głównym jest altana, z którą łatwo sobie poradzić, ponieważ wystarczy pobrać. Zastanawiam się jednak, czy powinienem również celować w inne systemy pakietów, takie jak komponent (który wymaga CommonJS).
Czy są inne istotne aspekty, o których powinienem wiedzieć? Czy są jakieś dobre przykładowe projekty do naśladowania w tym zakresie?