使用webpack公开窗口上的多个不同对象

时间:2019-05-05 12:41:36

标签: webpack

我有一个模块,需要向用户公开许多不同的类。假设ClassA和ClassB:

export class ClassA {}
export class ClassB {}

但是,当在不带捆绑程序的HTML中使用时(例如,在webpack中与libraryTarget: 'window'一起使用),我需要将这两个类公开为根级对象:

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

这是因为用户需要能够执行以下操作:

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

但是,webpack只允许我将导出分配给单个命名空间中的window。在webpack中使用library: MyLib,并且使用我的库的代码必须使用以下命名空间:

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

这不是我想要的。有没有办法让这些类直接在window对象上可用?

1 个答案:

答案 0 :(得分:1)

根据文档的this section,要实现以下目标,可以确保:

  1. 您的模块是切入点
  2. output.library虚伪
  3. output.libraryTarget = "window"