假设我有一个 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);
但我不确定如何正确实施它......