Предположим, у меня есть JS-библиотека, аккуратно завернутая в define('myModule', function(myModule) { return myModule.someObject; });
Как я могу привязать myModule.someObject
к глобальной области (пожалуйста, не спрашивайте почему, я знаю, что модульное программирование имеет много преимуществ по сравнению с размещением вещей в глобальной области), не используя requirejs или любую другую структуру обработки модулей?
Дело в том, что при разработке я хотел бы использовать requirejs. Библиотека, которую мы создаем, должна быть в состоянии быть включена кем-то, кто использует requirejs (AMD, CommonJS, что угодно), но также должна быть доступна как window.SomeObject
для людей, которые не хотят использовать require просто ради возможности использовать наш SomeObject
. После этапа разработки весь код будет минимизирован и запутан в один JS-файл.
Я думаю, что я просто гуглю с неправильными условиями поиска, потому что все, что я могу найти, это ответ на вопрос, как включить код, который не заключен в дружественную к requirejs функцию define
.
Любые идеи по этому поводу будут очень признательны. Спасибо!
--- РЕДАКТИРОВАТЬ ---
Мой файл (до того, как все началось) выглядел так:
(function(define, global) {
define([a,b,c],function(theA, theB, theC) {
return theA + theB + theC; // or something, it doesn't matter
});
})(define, this);
Я думаю о чем-то вроде этого:
(function(define, global) {
// same as above
})(typeof define === 'function'
? define
: function(factory /* need more args? */) { /* solution here */ }, this);
Но я не уверен, как это правильно реализовать...