Я наздогнав сучасну екосистему JS на стороні клієнта і читав на CommonJS та AMD (включаючи пов'язані інструменти - перегляньте, Requjs, Onejs, Jam, десятки інших). Якщо я пишу бібліотеку Javascript, як я модулюю / пакую її таким чином, щоб вона була найбільш доступною (в ідеалі користувачами, які клянуться у CommonJS, AMD, а особливо ні)?
Популярні бібліотеки, такі як jQuery, просто використовують конкатенацію файлів старої школи для побудови самого себе і динамічно визначають, чи слід писати exports
в глобальний контекст. В даний час я роблю те саме, але головний недолік полягає в тому, що якщо я (на відміну від jQuery) залежу від кількох бібліотек, непогано не потрібно просити користувачів попередньо включити перехідний набір. (Хоча зараз у мене просто дві залежності.) І звичайно забруднення простору глобальних імен.
Чи, можливо, найпростішим є створення декількох версій моєї бібліотеки для кожного контексту?
Мене теж цікавить упаковка та публікація. Є декілька систем, але я вважаю, що головна - це каналізація, з якою легко впоратися, оскільки все, що вона робить, - це отримання. Однак мені цікаво, чи слід також орієнтуватися на інші системи пакетів, як компонент (для чого потрібен CommonJS).
Чи є інші відповідні аспекти, про які я маю знати? Чи є якісь хороші приклади проектів, які слід наслідувати для всього цього?