更新
用户@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();