2017-04-01 11 views
0

.jsファイルにクラス定義のみを含むロールアップをバンドルしたいと思います。しかし、ロールアップは空のバンドルファイルのみを作成します。これは、クラス定義外のコードを追加すると変わります。 これは、空のバンドルを作成:ロールアップで空のバンドルが生成される

class MyElement extends HTMLElement{ 
    constructor() {...} 
    ... 
} 

をそして、これは満たされたバンドルを作成します。

class MyElement extends HTMLElement{ 
    constructor() {...} 
    ... 
} 

customElements.define('my-element', MyElement); 

しかし、私は、そのファイルに()...定義持っている必要はありません。 rollup.jsにクラス定義をバンドルするよう指示する方法はありますか?

答えて

2

ローカルスコープでクラスを定義するモジュールがありますが、何もしません。エクスポートしたり、defineに渡すなどの副作用を実行するために使用しません。それはデッドコードです - それはロールアップによって取り除かれます。

export default class MyElement extends HTMLElement { /* 
^^^^^^^^^^^^^^ */ 
    constructor() { … } 
    … 
} 

などを使用して、他の場所で使用できるようにクラスをエクスポートするものにバンドルすることができます。

+0

「デフォルトにエクスポート」を追加しても不幸なことはありません。インポートされたhtml.fileのスクリプトタグの中からそのクラスを使用したいと思います。 – treeno

+0

次に、ロールアップ設定でこのモジュールをエントリとして指定し、グローバルスコープにエクスポートする必要があります。 – Bergi

関連する問題