加载模块(如果存在)

Load a module if it exists

我测试了下面的代码,但它不起作用。我刚刚测试了模块是否加载。

var Url=window.location.href;
var decomposedulr=Url.split("/");
console.log(decomposedulr);
var Getter=decomposedulr[decomposedulr.length-1];
//The problem is defined test if module is loaded, not if module exist
if(require.defined("Module/"+Getter[0]+"/"+Getter[1]+"/"+Getter[1]")){
  requirejs(["Module/"+Getter[0]+"/"+Getter[1]+"/"+Getter[1]],function (Module) {

                        Module.Main();

  });
  
}

如何只加载存在的模块?

"Does a module exist?" 是一个模棱两可的问题。您已经发现 require.define 检查模块是否已加载,但 想要的是检查使用某个模块名称调用 require 是否会实际加载模块或不。 RequireJS 无法在加载模块之前执行此检查。

你所能做的就是尝试加载模块并提供错误反馈来记录模块不可用的事实:

require(["someModule"], function (someModule) {
  // If we get here the module exists. Use it.
}, 
function (err) {
  // This is the errback. We get here if the module could not be loaded.
  // Perform whatever alternative is needed.
});