【发布时间】:2018-03-07 12:14:15
【问题描述】:
我们正在尝试创建一个 ES6 加载器来使用对模块的符号引用,而不是在导入语句中使用格式良好的 URI 或路径。例如,像这样的导入:
import { foo } from 'com.bussines.platform.utils';
应该将符号引用 com.bussines.platform.utils 解析为真实的 uri,并继续执行常规加载过程以获取 foo。
为了实现这一目标,我们正在使用@guybedford 开发的es-module-loader polyfill 。因为,我们在浏览器上下文中,我们创建了一个加载器,委托给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。我们尝试了其他基于继承的方法,但得到了类似的结果。
¿有人可以就如何解决这个问题提供一些见解吗?提前致谢。
【问题讨论】:
标签: javascript ecmascript-6 es6-modules es6-module-loader