前言
很多同学就知道webpack能打包,但具体打包是为了什么呢?稀里糊涂的就看完了webpack的教程,开始新的项目的时候,配置却无从下手
首先明白webapck能做什么
1.使框架下(Vue、React)下的代码编译成浏览器认识的js\css,压缩代码、提升代码性能
2.处理各类静态资源,对项目的图片视频等无论是命名方式还是输出路径都进行指定,提高项目整体的工程性、维护性。
一.解析配置文件
Webpack 首先会读取并解析项目根目录下的配置文件(通常为 webpack.config.js、vue.cli中是vue.config.js
),获取配置信息
二.解析入口文件
根据配置中指定的入口文件(entry),Webpack 开始递归解析所有依赖关系。它会从入口文件开始,通过引入语句分析模块之间的依赖关系,并构建一个依赖图
加载和转换模块
Webpack 根据解析出的依赖关系,使用合适的加载器(loader)来加载不同类型的模块。加载器可以将模块转换成 JavaScript 可以理解的形式,例如将 Sass 文件转换为 CSS 或将 ES6 代码转换为 ES5 代码。
解析和生成代码块
Webpack 根据模块间的依赖关系,将模块分组到不同的代码块(chunks)中。这些代码块可以被异步加载,按需加载。
应用优化
Webpack 在打包过程中应用各种优化策略,例如通过 Tree Shaking 移除未使用的代码、使用代码分割减小文件体积、压缩代码等。
输出结果
最后,Webpack 根据配置中的输出选项,将打包后的文件生成到指定的目录中。可以生成多个文件,如 JavaScript 文件、CSS 文件、图片文件等。
注意
在整个打包流程中,Webpack 还会执行一些其他任务,如处理静态资源、解析模块路径、处理插件等。通过这些步骤,Webpack 可以将项目中的多个模块和资源打包成一个或多个可部署的静态资源文件,以供浏览器加载和运行。
实际上 Webpack 的打包过程非常复杂且灵活,可以根据配置进行各种自定义操作。