私はES6に2つのモジュールがあります。コンパイル済みのES6〜ES5ファイルをブラウザで使用する方法は?
//mycalss.js
class MyClass {
}
export {MyClass};
//main.js
import {MyClass} from './../src/myclass';
をそして私は、コンパイルおよびバンドルプロセスを処理するために、Laravelミックスを使用しています。
最終的に私はmain.js
になります。
私はこのファイルを自分のhtmlにリンクしています。
<script type="text/javascript" src="main.js"></script>
とクラスMyClass
への参照を作成しよう:
<script type="text/javascript">
var object = new MyClass();
</script>
しかしUncaught ReferenceError: MyClass is not defined
がスローされます。
私はどのようにしてes6からes5にコンパイルされたクラスをHTMLで使用しますか?
できません。 「バンドルされた」JSファイルは関数スコープ内にある可能性が高く、変数/オブジェクトを公開する可能性は低いです。 – evolutionxbox
おそらく、再利用したいオブジェクトを明示的に公開することはできますか? 'main.js'では、' window.MyClass = MyClass'のようなことをして、あなたのバンドルに含まれていない他のスクリプトから見えます。(もちろん、最初の場所...) –
することはできませんし、しないでください。 MyClassを使用するコードは、インラインスクリプトではなくmain.js内にある必要があります。これがES6モジュールの目的です。 – estus