哪个网站做logo设计师,网络营销心得体会800字,设计图案,小程序开发公司排行榜前10什么是webpack webpack是一个模块打包器。通过使用webpack#xff0c;我们可以将JavaScript文件打包在一起#xff0c;打包后的文件可以在浏览器中使用 webpack的原理是什么 webpack读取相关配置#xff0c;根据入口开始便利文件#xff0c;解析依赖#xff0c;使用loader… 什么是webpack webpack是一个模块打包器。通过使用webpack我们可以将JavaScript文件打包在一起打包后的文件可以在浏览器中使用 webpack的原理是什么 webpack读取相关配置根据入口开始便利文件解析依赖使用loader处理各个模块然后将文件打包成bundle后输出到output指定的目录中。 entry一个可执行模块或者库的入口。 chunk: 多个文件组成一个代码块。可以将可执行的模块和他所依赖的模块组成一个chunk这是打包。 loader文件转换器。例如把es6转化为es5scss转为css等。 plugin: 拓展webpack功能的插件。在webpack构建的生命周期节点上加入扩展hook添加功能。 output编译结果文件的输出位置 webpack的构建流程 Webpack的运行流程是一个串行的过程从启动到结束会依次执行以下流程 1.参数初始化: 解析webpack配置参数其中包含了shell传入的参数和webpack.config.js文件配置的参数将其合并得到最终的配置结果。 2.开始编译在上一步的参数初始化compiler对象注册所有配置的插件插件监听webpack构建生命周期的事件节点做出相应的反应执行对象的run方法开始执行编译。 3. 确定入口从配置的entry入口开始解析文件并构建AST语法树找出依赖递归下去。 4. 编译模块递归中根据文件类型和loader配置调用所有配置的loader对文件进行转换再找出该模块依赖的模块再递归本步骤直到所有入口依赖的文件都经过了编译处理。 5. 完成模块编译在经过使用Loader翻译完成所有模块之后得到了每个模块被翻译后的最终内容以及他们之间的依赖关系。 6.输出资源根据入口和模块之间的依赖关系组装成一个个包含多个模块的Chunk再把每个Chunk转换成一个单独的文件加入到输出列表这一步是可以修改输出内容的最后内容。 7.输出完成:在确定好输出内容后根据配置确定输出的路径和文件名把内容写入到文件系统。 Chunk是什么 Chunk在webpack中代指一个代码块或数据块是webpack在打包过程中一个模块或一组模块的集合。可以分为两种 1.非初始化的 例如在打包中对于一些动态导入的异步代码webpack会帮我们分割出公用的代码可以是自己的代码也可以是第三方库node_modules文件夹里的这些被分割的代码文件我们可以理解为chunk 2.初始化的 我们在使用webpack进行打包的时候是从一个入口文件开始的这构成了一连串模块引用关系。webpack通过引用关系逐个打包模块这些模块(module)经过编译在编译过程中就初步形成了一个Chunk。 如果我们有多个入口文件可能会产生多个打包路径一条打包路径就会形成一个Chunk。 model是什么 model即不同文件类型的模块。webpack就是对模块进行打包的工具这些模块各式各样如js模块css模块sass模块vue模块等等。这些模块文件都可以通过loader转换为对webpack有效的代码模块然后被应用所使用并添加到依赖图中。 Bundle是什么 Bundle是webpack打包后输出的一个或多个最终的打包文件。大多数情况下一个Chunk产生一个Bundle但有时候并不是一对一的关系 1.Chunk是开发阶段的概念在编译过程中生成。代表一组有依赖关系的模块。 2.Bundle是生产阶段的概念有Webpack对Chunk进行进一步处理和优化后生成的最终的输出文件 3.Chunk的划分是自动进行的Webpack根据模块之间的依赖关系和其他配置信息来生成Chunk而Bundle则需要显式指定入口点。 4.在使用代码分割code splitting功能时webpack可以将一个大的Chunk分割乘多个小的Chunk从而实现按需加载(lazy loading).最终打包生成的Bundle也会相应的被拆分为多个文件每个文件对应一个Chunk 产生Chunk的三个途径 1.entry入口 2.异步加载模块 3.代码分割code spliting