Выставить несколько разных объектов в окне с веб-пакетом - PullRequest
0 голосов
/ 05 мая 2019

У меня есть модуль, который должен предоставлять пользователю ряд различных классов. Допустим, класс А и класс В:

export class ClassA {}
export class ClassB {}

Однако при использовании в HTML без упаковщика (например, с libraryTarget: 'window' в веб-пакете) мне нужно, чтобы эти два класса были представлены как объекты корневого уровня:

window.ClassA = ClassA;
window.ClassB = ClassB;

Это потому, что пользователь должен уметь делать такие вещи:

var a = new ClassA(new ClassB(), new ClassB())

Однако, веб-пакет позволит мне назначить экспорт только для window внутри единственного пространства имен. С library: MyLib в веб-пакете и кодом, который использует мою библиотеку, необходимо использовать это пространство имен:

var a = new MyLib.ClassA(new MyLib.ClassB(), new MyLib.ClassB())

Это не то, что я хочу. Есть ли способ сделать эти классы доступными непосредственно в объекте window?

1 Ответ

1 голос
/ 05 мая 2019

Согласно этому разделу документа, то, что вы хотите достичь, выполнимо, гарантируя:

  1. Ваш модуль является точкой входа
  2. output.library это ложь
  3. output.libraryTarget = "window"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...