これらは私のサンプルファイルです。
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script src="t1.js"></script>
</head>
<body></body>
</html>
t1.js:
import Test from 't2.js';
t2.js:
export const Test = console.log("Hello world");
Firefox 46でページをロードすると、「SyntaxError:import宣言はモジュールの最上位レベルにのみ表示される場合があります」を返します。このエラーは赤いニシンで、インポート/エクスポートはまだサポートされていませんか?
実際にエラーが発生したのは、モジュールをロードしていることを明示的に指定する必要があるためです。その場合にのみ、モジュールの使用が許可されます。
<script src="t1.js" type="module"></script>
ブラウザでのES6インポートの使用に関するこのドキュメント で見つけました。推奨読書。
これらのブラウザバージョンで完全にサポートされています(およびそれ以降、 caniuse.com の完全なリスト):
古いブラウザでは、ブラウザでいくつかのフラグを有効にする必要がある場合があります。
chrome:flags
のExperimental Web Platformフラグの背後。dom.moduleScripts.enabled
のabout:config
設定。about:flags
のExperimental JavaScript Features設定の背後。ES6のインポートは広くサポートされていませんが、webpackを使用してプロジェクトをコンパイルするのに費やす時間を節約するために、開発において確かに素晴らしいことを覚えておいてください。
これはもう正確ではありません。現在のすべてのブラウザがES6モジュールをサポートするようになりました
_import
on MDN から:
現時点では、この機能はどのブラウザにもネイティブに実装されていません。 Traceur Compiler、Babel、Rollupなど、多くのトランスパイラーに実装されています。
ブラウザはimport
をサポートしていません。
ブラウザサポートの表は次のとおりです。
ES6モジュールをインポートする場合は、トランスパイラーを使用することをお勧めします(たとえば、 babel )。
スクリプトでそのタイプを指定する必要があり、エクスポートはデフォルトである必要があります。
<script src='t1.js' type='module'>
t2.jsの場合、このようにエクスポート後にデフォルトを使用しますexport default 'here your expression goes'(ここでは変数を使用できません)。このような関数を使用できます
export default function print(){ return console.log('hello world');}
インポートの場合、インポート構文は次のようになります'./ t2.js'から印刷をインポート(同じディレクトリにファイル拡張子と./を使用) .. !