Saya telah mengejar ketinggalan dengan ekosistem JS sisi klien modern dan membaca CommonJS dan AMD (termasuk alat terkait - browser, browser yang diperlukan, satu, selai, puluhan lainnya). Jika saya menulis perpustakaan Javascript, bagaimana saya memodulasi / mengemasnya sedemikian rupa sehingga dapat diakses secara luas (idealnya oleh pengguna yang bersumpah dengan CommonJS, AMD, dan terutama keduanya)?
Perpustakaan populer seperti jQuery tampaknya hanya menggunakan penggabungan file old-school untuk membangun dirinya sendiri dan secara dinamis mendeteksi apakah itu harus menulis ke exports
konteks global atau. Saat ini saya melakukan hal yang sama, tetapi kelemahan utama adalah bahwa jika saya (tidak seperti jQuery) bergantung pada beberapa perpustakaan, senang tidak perlu meminta pengguna untuk secara manual memasukkan pra-set transitif. (Meskipun saat ini saya hanya memiliki dua dependensi.) Dan tentu saja polusi namespace global.
Atau mungkin itu terbersih untuk menghasilkan beberapa versi perpustakaan saya, untuk setiap konteks?
Saya juga ingin tahu tentang pengemasan dan penerbitan. Ada beberapa sistem, tapi saya percaya yang utama adalah bower, yang mudah ditangani karena yang dilakukannya hanyalah mengambil. Namun, saya bertanya-tanya apakah saya juga harus menargetkan sistem paket lain seperti komponen (yang membutuhkan CommonJS).
Apakah ada aspek relevan lainnya yang harus saya perhatikan? Apakah ada contoh proyek yang baik untuk diikuti untuk semua ini?