我正在开发一个 JavaScript 项目,我们使用 requirejs 来管理我们的代码。我们创建的产品将在 3rd 方网站上使用,因此我们不能假设存在 AMD 兼容库。为了解决这个问题,我们将almond包含在目标文件中,并将我们的主模块暴露在window
. 我们的构建创建的文件如下所示:
(function() {
//Almond lib
//Our code
define('window-exposer', ['main-module'], function(mainModule) {
window.mainModule = mainModule;
});
require('window-exposer');
}());
当构建一个想要使用的站点时,mainModule
会抛出一个错误,因为当站点特定代码尝试访问window.mainModule
它时尚未设置。在某些情况下,模块确实已经初始化并且代码可以正常工作。
有什么方法可以保证window-exposer
在其他 JavascriptCode 之前运行?