如何使用esbuild将类公开到全局范围?

时间:2020-11-12 14:54:20

标签: javascript ecmascript-6 bundler esbuild

更新

用户@TKoL建议在window对象中定义一个属性。尽管我不知道这是否是正确的进行方法,但这会产生我想要实现的结果。我将暂时使用此方法。谢谢!


我在项目中使用esbuild(第一次使用捆绑器/以这种“样式”开发JS)。 该项目是一个小型Web组件,我为此开发了一个类,最终用户应该可以在其脚本中使用该类。

// this is the component, which is then bundled and minified by esbuild.
// i have omitted various imports required in the class here.

export default class Widget extends HTMLElement {
    /// code here is not relevant
}

customElements.define('custom-widget', Widget);

按现状,最终用户可以使用HTML中的小部件,如下所示:

<custom-widget some-custom-attribute="some-value"></custom-widget>

let widget = document.querySelector('custom-widget');
widget.someMethodDefinedInTheClass();

但是,我也希望允许用户通过JavaScript来完成所有操作。

如何使 esbuild Widget 类公开给全局范围?我想这样做是为了启用以下行为:

let wOptions = {}; // object of initialization options for the widget
let widget = new Widget(wOptions);
someContainer.append(widget);
widget.someMethodDefinedInTheClass();

0 个答案:

没有答案