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