如何检测es6模块的功能

kra*_*dio 22 javascript ecmascript-6

我只想在当前运行时支持使用ES6语法导出模块.目标是开发一个支持不同模块管理系统的库.

作为export关键字,类似的东西会抛出语法错误:

typeof export
Run Code Online (Sandbox Code Playgroud)

dar*_*iul 7


'noModule' in HTMLScriptElement.prototype

Run Code Online (Sandbox Code Playgroud)

参考


the*_*472 5

规范的修订版27有一个Reflect.Loader可用于模块反射的API.

虽然这不是export关键字本身的直接特征检测,但是可能可以加载一个使用data-uri中的export关键字的模块,然后检查它是否会抛出解析错误.

但它已被修订版28删除,其中包含以下更改日志条目:

删除了加载器管道和Reflect.Loader API(功能被转移到单独的规范)


因此,据我所知,该规范在编写时似乎没有提供任何特征检测方法.

在未来,它可能有Reflect.Loader或可以替代它.

编辑:加载器规范似乎是由whatwg开发的,但它尚未处于我们可以从中导出特征检测的状态.