Webpack是当下最流行的前端资源模块打包器。当webpack处理应用程序时,它会递归地构建一个依赖关 系图,其中包含应用程序需要的每个模块,然后将所有这些模块打包成少量的bundle通常只有一个,有浏览器 加载.
它的高度可配置的,我们先理解四个核心概念:入口(entry)、输出(output)、loader、插件(plugins)
入口:webpack 创建应用程序所有依赖的关系图。图的起点被称之为入口起点(entry point)。入口起点告诉 webpack 从哪里开始,并根据依赖关系图确定需要打包的内容。可以将应用程序的入口起点认为是根上下文或 APP第一个启动文件。
输出(output):将所有的资源(assets)归拢在一起后,还需要告诉 webpack 在哪里打包应用程序。webpack 的 output 属性描述了如何处理归拢在一起的代码(bundled code)。output选项可以控制webpack如何向硬盘写入编译文件。注意,即使可以存在多个entry起点,但只指定一个output配置。
Loader:loader可以使你在import或"加载"模块时预处理文件。因此,loader类似于其他构建工具中“任务(task)”,并提供了处理前端构建步骤的强大方法。
在更高层面,在webpack的配置中loader有两个目标:
- 识别出应该被对应的loader进行转换的那些文件。(test属性)
- 转换这些文件,从而使其能够被添加到依赖图中(并且最终添加到bundle中)。(use属性)
插件(plugins):插件是 wepback 的支柱功能。webpack 自身也是构建于-你在 webpack 配置中用到的相同的插件系统之上