Javascript 用于解析符号引用的ES6模块加载器

Javascript 用于解析符号引用的ES6模块加载器,javascript,ecmascript-6,es6-modules,es6-module-loader,Javascript,Ecmascript 6,Es6 Modules,Es6 Module Loader,我们正在尝试创建一个ES6加载程序,以使用对模块的符号引用,而不是在导入语句中使用格式良好的URI或路径。例如,像这样的导入: import { foo } from 'com.bussines.platform.utils'; 应将符号引用com.bussines.platform.utils解析为真实uri,并继续常规加载过程以获取foo 为了实现这一目标,我们使用@guybedford开发的es模块加载器。由于处于浏览器上下文中,我们创建了一个加载程序,该加载程序委托给BrowserES

我们正在尝试创建一个ES6加载程序,以使用对模块的符号引用,而不是在导入语句中使用格式良好的URI或路径。例如,像这样的导入:

import { foo } from 'com.bussines.platform.utils';
应将符号引用
com.bussines.platform.utils
解析为真实uri,并继续常规加载过程以获取
foo

为了实现这一目标,我们使用@guybedford开发的
es模块加载器
。由于处于浏览器上下文中,我们创建了一个加载程序,该加载程序委托给
BrowserESModuleLoader

class CustomBrowserLoader extends RegisterLoader {

  constructor(Loader) {
    super();
    this.loader = new BrowserESModuleLoader();
  }

  [RegisterLoader.resolve] (key) {
    let uri = Resolve (key)
    return this.loader[RegisterLoader.resolve] (uri); // (1)
  }

  [RegisterLoader.instantiate] (uri) {
    return this.loader[RegisterLoader.instantiate] (uri); // (2)
  }
}
问题是,令人惊讶的是,第(1)行和第(2)行的调用没有找到所需的方法
resolve
instantiate
。我们尝试了其他基于继承的方法,但得到了类似的结果


有人能就如何解决这个问题提出一些见解吗?提前感谢。

加载程序是独立的版本,因此我认为您需要BrowserESModuleLoader.resolve和BrowserESModuleLoader.Instance


不过,最好直接将浏览器ES模块加载器代码本身分叉,并对其进行调整,以直接处理这些类型的说明符。

加载器是独立的构建,因此我认为您需要BrowserESModuleLoader.resolve和BrowserESModuleLoader.Instance

不过,最好直接将浏览器ES模块加载器代码本身分叉,并将其修改为直接处理这些类型的说明符