Javascript 用于解析符号引用的ES6模块加载器
我们正在尝试创建一个ES6加载程序,以使用对模块的符号引用,而不是在导入语句中使用格式良好的URI或路径。例如,像这样的导入: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
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模块加载器代码本身分叉,并将其修改为直接处理这些类型的说明符