我正在尝试使用 Require.js 创建一个外部库。感谢Require.js 没有正确编译单个 js 文件和Require.js (almond.js)超时,我已经想出了如何将所有内容“编译”到单个优化/构建的文件中,并且该单个文件可以工作。只有一个问题:我不知道如何为我的库设置变量。
假设我希望我的库创建window.Foo
. 我尝试使用以下main.js
文件:
window.Foo = require([], function() {
window.Foo = {someValue: 1};
return {someValue: 2};
});
和一个包装结束片段:
return require('main');
}));
如您所见,我尝试通过window.Foo
从 require 调用内部显式设置以及通过结束片段的返回值从外部显式设置来将 Foo 暴露给全局空间。但是没有一个工作;如果我console.log(window.foo)
在加载构建文件后添加一个权利,它会告诉我这window.Foo
是未定义的。
如果我做一个 window.setTimeoutwindow.Foo
最终确实被设置(到{someValue: 1}
),但我不能很好地期望我的用户必须用超时来包装他们的所有代码。谁能解释一下window.Foo
我的优化/构建文件加载后如何被定义?