mwc*_*wcz 7 javascript amd requirejs
我研究是否有检测,这是一种肯定,无论是给定的脚本目前正在RequireJS加载.一般来说AMD模块的答案会更好,但我的用例只是RequireJS.
jQuery和其他库"检测"它是这样的:
if ( typeof define === "function" && define.amd ) {
define( "jquery", [], function() {
return jQuery;
});
}
Run Code Online (Sandbox Code Playgroud)
在大多数情况下这已足够,但问题是它不会检测脚本是否作为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;
});
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是如何获取模块名称,因为它可能会根据用户设置而有所不同。有一个专门的模块可以实现这一点,但只有当您已经处于定义调用中时,该模块才有效。我建议您联系Requirejs 开发人员jrburke 。