es6模块原生支持

时间:2016-08-25 11:40:31

标签: javascript ecmascript-6 es6-module-loader

我理解ES6模块规范,问题在于它的支持。 AFAIK,没有本机实现此功能的浏览器(请参阅浏览器兼容性 here)。有几个问题:

  • ES6模块显然是ES6功能。当我看kangax compatibility table时,我根本看不到这样的行(对于ES6模块),为什么会这样?这毕竟是ES6的特色......
  • 因此,现在使用ES6的唯一方法是使用构建工具,例如babel,browserify或任何其他替代品,对吗?
  • 当它们被本机支持时,如何从浏览器中调用异步AJAX来获取模块?

2 个答案:

答案 0 :(得分:3)

  

ES6模块显然是ES6功能。当我查看kangax兼容性表时,我根本看不到这样的行(对于ES6模块),为什么会这样?

在kangax的github上有an issue being discussed

  

现在使用ES6的唯一方法是使用构建工具,例如babel,browserify或任何其他替代方案,对吗?

没有。 Guy Bedford在http://github.com/ModuleLoader/browser-es-module-loader还有一个polyfill。

已经有Edge的预览版,它本地实现了它。

  

当它们被本机支持时,如何从浏览器中调用异步AJAX来获取模块?

是但不完全是:通过调用导入库中的对象(函数或属性),第一次使用它们时将获取它们。

答案 1 :(得分:1)

以下版本的浏览器中提供了本机模块:

  • Safari 10.1
  • Chrome Canary 60 - 落后于实验性网络平台 铬旗:旗帜。
  • Firefox 54 - 在about:config中的dom.moduleScripts.enabled设置后面。
  • Edge 15 - 落后 about:flags。中的实验性JavaScript功能设置。

source