,webpack类定义?

用户投稿 59 0

关于“php_webpack”的问题,小编就整理了【3】个相关介绍“php_webpack”的解答:

webpack类定义?

webpack的定义:

本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。

webpack 就像一条生产线,要经过一系列处理流程后才能将源文件转换成输出结果。 这条生产线上的每个处理流程的职责都是单一的,多个流程之间有存在依赖关系,只有完成当前处理后才能交给下一个流程去处理。 插件就像是一个插入到生产线中的一个功能,在特定的时机对生产线上的资源做处理。

webpack 通过 Tapable 来组织这条复杂的生产线。 webpack 在运行过程中会广播事件,插件只需要监听它所关心的事件,就能加入到这条生产线中,去改变生产线的运作。 webpack 的事件流机制保证了插件的有序性,使得整个系统扩展性很好。

webpack的核心概念:

Entry

入口起点(entry point)指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始。

进入入口起点后,webpack 会找出有哪些模块和库是入口起点(直接和间接)依赖的。

webpack原理解析?

entry: 一个可执行模块或库的入口文件。

chunk :多个文件组成的一个代码块,例如把一个可执行模块和它所有依赖的模块组合和一个 chunk 这体现了webpack的打包机制。

loader :文件转换器,例如把es6转换为es5,scss转换为css。

plugin :插件,用于扩展webpack的功能,在webpack构建生命周期的节点上加入扩展hook为webpack加入功能。

2.webpack构建流程(原理):

从启动webpack构建到输出结果经历了一系列过程,它们是:

2.1 解析webpack配置参数,合并从shell传入和webpack.config.js文件里配置的参数,生产最后的配置结果。

2.2 注册所有配置的插件,好让插件监听webpack构建生命周期的事件节点,以做出对应的反应。

2.3 从配置的entry入口文件开始解析文件构建AST语法树,找出每个文件所依赖的文件,递归下去。

2.4 在解析文件递归的过程中根据文件类型和loader配置找出合适的loader用来对文件进行转换。

2.5 递归完后得到每个文件的最终结果,根据entry配置生成代码块chunk。

2.6 输出所有chunk到文件系统。

webpack通过什么和什么实现功能的扩展?

webpack可以通过插件进行功能扩展。webpack拥有很多的内置插件和第三方插件。

webpack自带的插件bannerPlugin为例,说明插件的简单用法。bannerPlugin可以将任何字符串加到生成的bundle文件的顶部(例如版权信息等)。因为bannerPlugin是内置的,我们无需用npm进行安装。

到此,以上就是小编对于“php_webpack”的问题就介绍到这了,希望介绍关于“php_webpack”的【3】点解答对大家有用。

抱歉,评论功能暂时关闭!