私はWebpackを使用してES6クラスをトランスクリルしています。バンドル内にService
クラスがあり、他のバンドルされたスクリプトによってインポートできるクラスがあるとします。今、私はテンプレートエンジンを使用して、サーバー側に挿入されたデータとそのService
クラスのメソッドを呼び出す必要があるHTML本体(以下擬似コード)に小さなインラインスクリプトを持っているバンドルされたES6クラスにインラインでアクセスする方法<script>
class Service {
constructor() {
//
}
someMethod(data) {
//
}
}
export default Service;
TwigやBladeなどのもちろん、それは追加の非同期呼び出しを防ぐように私は実際にサーバーのデータのように利用できるインラインであることを思い...新しいService
オブジェクトは動作しません
<body>
...
<script>
var data = {{ $json_server_data }};
var service = new Service;
Service.someMethod(data);
</script>
</body>
を作成します。 Service
クラスでウィンドウの名前空間を汚染すると、クラスローダーのメリットを捨てるように感じられます。
どのように対処しますか?別のアプローチを取ることについての示唆ももちろん歓迎します。
私達にあなたのWebPACKの設定を表示します。どのモジュールからどのエクスポートをどのように利用できるかを選択することができます。そして今、グローバルスコープを使用することには何も問題はありません。これはそのために作られたものです。 「サービス」が必要なときは、不要な汚染ではありません。 – Bergi