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ć exports
w 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?