问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

webpack承担了哪些工作?原理?功能

发布网友 发布时间:2022-04-20 03:50

我来回答

2个回答

热心网友 时间:2023-07-16 04:39

webpack打包原理是根据文件间的依赖关系对其进行静态分析,然后将这些模块按指定规则生成静态资源,当 webpack 处理程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。

webpack有两种组织模块的依赖方式,同步、异步。异步依赖将作为分割点,形成一个新的块;在优化了依赖树之后,每一个异步区块都将作为一个文件被打包。

webpack有一个智能解析器,几乎可以处理任何第三方库。无论它们的模块形式是CommonJS、AMD还是普通的JS文件;甚至在加载依赖的时候,允许使用动态表require("、/templates/"+name+"、jade")。

扩展资料

在使用webpack构建的典型应用程序或站点中,有三种主要的代码类型:

1、团队编写的源码。

2、源码会依赖的任何第三方的library或"vendor"代码。

3、webpack的runtime和manifest,管理所有模块的交互。

runtime 包含:在模块交互时,连接模块所需的加载和解析逻辑;包括浏览器中的已加载模块的连接,以及懒加载模块的执行逻辑。

热心网友 时间:2023-07-16 04:40

将根据文件间的依赖关系对其进行静态分析,然后将这些模块按指定规则生成静态资源,当 webpack 处理程序时,会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。

webpack只是一个打包模块的机制,只是把依赖的模块转化成可以代表这些包的静态文件。并不是什么commonjs或者amd之类的模块化规范。webpack就是识别你的 入口文件。识别你的模块依赖,来打包你的代码。

至于你的代码使用的是commonjs还是amd或者es6的import。webpack都会对其进行分析。来获取代码的依赖。

webpack做的就是分析代码。转换代码,编译代码,输出代码。webpack本身是一个node的模块,所以webpack.config.js是以commonjs形式书写的(node中的模块化是commonjs规范的)

webpack中每个模块有一个唯一的id,是从0开始递增的。整个打包后的bundle.js是一个匿名函数自执行。参数则为一个数组。数组的每一项都为个function。function的内容则为每个模块的内容,并按照require的顺序排列。

扩展资料:

webpack 核心概念:

1、Entry

入口起点(entry point)指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始。进入入口起点后,webpack 会找出有哪些模块和库是入口起点(直接和间接)依赖的。每个依赖项随即被处理,最后输出到称之为 bundles 的文件中。

2、Output

output 属性告诉 webpack 在哪里输出它所创建的 bundles,以及如何命名这些文件,默认值为 ./dist。基本上,整个应用程序结构,都会被编译到指定的输出路径的文件夹中。

3、Mole

模块,在 Webpack 里一切皆模块,一个模块对应着一个文件。Webpack 会从配置的 Entry 开始递归找出所有依赖的模块。

4、Chunk

代码块,一个 Chunk 由多个模块组合而成,用于代码合并与分割。

5、Loader

loader 让 webpack 能够去处理那些非 JavaScript 文件(webpack 自身只理解 JavaScript)。

loader 可以将所有类型的文件转换为 webpack 能够处理的有效模块,然后就可以利用 webpack 的打包能力,对它们进行处理。

本质上,webpack loader 将所有类型的文件,转换为应用程序的依赖图(和最终的 bundle)可以直接引用的模块。



声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
今年是第几届世界杯啊? 今年是第几届世界杯 还关于奖杯 今年这是第几届世界杯? ...的,但当时心悦会员留的手机号早就不用了,现在也改不了,会有安全问题... 我们的大脑会"停止运作"或者"卡机“吗? ...当时大脑空白几分钟这是为什么?代表什么?我还没谈过恋爱。。_百度知... 大脑当机是什么意思? 中山招商银行在那里有 八字合婚:属鸡和属狗的合财吗 婚配好不好呢 一分钟能干什么作文一分钟能干什么作文范文 【Web前端基础】webpack打包原理是什么? webpack打包原理 PHOTOSHOP中 可以直接给路径描边或填充颜色吗?? Illustrator里路径填充颜色 Ps 自由钢笔工具画的图形怎么填充颜色 怎么在Flash里给路径填充颜色啊? 带有路径的图标怎么填充颜色呢? 在ps中绘制多个闭合路径怎么分别进行填不同颜色 PS里的路径填充 photoshop中路径怎么填充颜色? ai怎么给路径填充颜色 AI应该怎么给不封闭的路径填... ps怎么给路径填充渐变 给一条闭合路径填充颜色,实现步骤有哪些 ps路径文字怎么填充颜色 ps怎么给路径填充颜色 ps里面怎么根据路径填充颜色 AI应该怎么给不封闭的路径填充颜色啊? PS怎么闭合路径?然后填充颜色 ps中怎样对路径进行填充颜色 ps 如何给路径填充颜色 《深入浅出Webpack》pdf下载在线阅读全文,求百度... 求《深入浅出Webpack》全文免费下载百度网盘资源,... fis3和webpack有什么区别 webpack怎么配置name,description 前端小白想问,jsp?后面是什么意思,怎么用?求大... webpack为什么要重新webpack vue2.0用脚手架搭建的官方例子怎么用webpack打包 ... webpack 可以在jsp开发的系统中使用吗 webpack 找不到模块的问题求助 怎么解决webpack@1 大家对黑鲨手机怎么样评价??如果跟小米8比。哪一... 为什么黑鲨手机充电的时候会断一下电然后,再继续充... 你们的黑鲨手机耗电吗,我的手机从晚上12点 黑鲨3s系统耗电最高怎么办? 我刚买两个月的小米黑鲨2手机用完电自动关机后,充... 黑鲨手机为什么快充不了,息屏都不能快充,关机有... 黑鲨手机除了原装充电器别的充电器别的充电器充不... 黑鲨手机掉频掉的厉害怎么办? 为什么我黑鲨手机显示充电却实际充不进,数据线和... 黑鲨手机怎么设置自动省电