2016-08-25 3 views
5

私はES6モジュールの仕様を理解していますが、そのサポートについての質問です。 AFAIK、これをネイティブに実装するブラウザはありません(ブラウザ互換性hereを参照)。これに関するいくつかの質問があります:es6モジュールのネイティブサポート

  • ES6モジュールは、明らかにES6機能です。 kangax compatibility tableを見ると、(ES6モジュール用の)このような行は表示されません。それはなぜですか?後でES6の機能です...
  • したがって、ES6を使用する唯一の方法は、babel、browserifyなどのビルドツールを使用することです。
  • ネイティブでサポートされている場合、モジュールはどのようにフェッチされるのですか?ブラウザからの非同期AJAXコールですか?
+1

最初の質問は、SOに、特にここでは、una​​nswerableです... – deceze

+0

私はバベルとの組み合わせでのWebPACKを使用することをお勧めします。 Webpackは2番目と3番目の質問に答えます。 –

答えて

2

ES6モジュールは、明らかにES6の機能です。 kangax互換表を見ると、(ES6モジュール用の)このような行は表示されません。どうしてですか?

kangaxのgithubにはan issue being discussedがあります。

現在、ES6を使用する唯一の方法は、babel、browserifyなどのビルドツールを使用することです。

いいえ、Guy Bedfordのpolyfillもhttp://github.com/ModuleLoader/browser-es-module-loaderにあります。

既に、それをネイティブに実装するEdgeのプレビューリリースがあります。

ネイティブでサポートされている場合、モジュールはどのようにフェッチされるのですか?ブラウザからの非同期AJAXコールですか?

はい、ただし正確ではありません。インポートされたライブラリのオブジェクト(関数またはプロパティ)を呼び出すと、初めて使用されたときにフェッチされます。

+1

ありがとう!あなたはそれが** **そのような質問に答えることが可能であることを証明しました:)完璧! PSは、Guy Bredfordのpolyfillによって、ES6モジュールがネイティブにサポートされている場合(構文ではなく実行に関して)正確にシミュレーションしますか? – ducin

+0

@ducinわかりませんが、それは可能だとは思いません。私はそれがもっとajax asyncのように動作すると思う。これはDev Toolsを使って確認することができます。 – Supersharp

1

ネイティブモジュールは、ブラウザの次のバージョンで使用できます。

  • サファリ10.1
  • クロムカナリア60 - クロムで実験的なWebプラットフォーム フラグの後ろ:フラグ。
  • Firefox 54 - about:configのdom.moduleScripts.enabled設定の後ろにあります。
  • Edge 15 - behind about:flagsの実験的JavaScript機能の設定。

source

+1

はい、私は知っています:https://jakearchibald.com/2017/es-modules-in-browsers/ – ducin

関連する問題