如何单独捆绑供应商脚本,并根据需要使用 Webpack 来要求它们?
我试图做一些我认为应该是可能的事情,但我真的无法从webpack文档中理解如何做到这一点。
我正在编写一个JavaScript库,其中包含几个模块,这些模块可能相互依赖,也可能不相互依赖。最重要的是,所有模块都使用jQuery,其中一些模块可能需要jQuery插件。然后,该库将在几个不同的网站上使用,这些网站可能需要部分或全部模块。
定义模块之间的依赖关系非常容易,但定义它们的第三方依赖关系似乎比我预期的要困难。
我想实现的目标:对于每个应用程序,我希望有两个捆绑文件,一个具有必要的第三方依赖项,另一个具有我库中的必要模块。
示例:假设我的库具有以下模块:
- a (require: jquery, jquery.plugin1)
- b (要求: jquery, a)
- c (require: jquery, jquery.ui, a, b)
- d (require: jquery, jquery.plugin2, a)
我有一个应用程序(将其视为唯一的条目文件),它需要模块a,b和c。对于这种情况,Webpack 应生成以下文件:
- vendor bundle: with jquery, jquery.plugin1 and jquery.ui;
- 网站捆绑包:模块a,b和c;
最后,我更喜欢将jQuery作为全局,这样我就不需要在每个文件上都要求它(例如,我只能在主文件上要求它)。jQuery插件只会在需要它们的情况下扩展$ global(如果它们可用于其他不需要它们的模块,这不是问题)。
假设这是可能的,那么对于这种情况,webpack配置文件的示例是什么?我在配置文件上尝试了加载器,外部和插件的几种组合,但我并没有真正了解它们在做什么以及我应该使用哪些。谢谢!