是否有可能检测脚本是否作为RequireJS模块加载?

我正在研究是否有办法检测当前是否正在由RequireJS加载给定的脚本。 一般来说AMD模块的答案会更好,但我的用例只是RequireJS。

jQuery和其他库“检测”它是这样的:

if ( typeof define === "function" && define.amd ) {
    define( "jquery", [], function() {
        return jQuery;
    });
}

这在大多数情况下都是足够的,但问题是,它不检测脚本是否作为AMD模块加载,它只检测是否存在define并支持AMD规范。

有没有一种方法,无论是RequireJS还是AMD模块,一个脚本来确定(真实的)它是否被加载为模块?


看看指定的():

parentRequire.specified(moduleName):如果模块已经被请求或正在加载并且应该在某个时刻可用,则返回true。

if (typeof require === "function" && typeof require.specified === "function" && require.specified("jquery")) {
    define("jquery", [], function () {
        return jQuery;
    });
}

现在问题在于如何获取模块名称,因为它可能因用户设置而异。 这里有一个特殊的模块,但只有当你已经在定义调用中才有效。 我建议你联系Requirer开发人员jrburke。

链接地址: http://www.djcxy.com/p/73253.html

上一篇: Is it possible to detect if a script is being loaded as a RequireJS module?

下一篇: Android and ICU 5.0