












Webpack 是一个模块打包工具,它将项目中的所有资源(JS、CSS、图片等)视为模块,通过依赖关系构建依赖图,借助Loader转换,借助plug插件进行优化,最终打包成一个或多个静态文件。
Entry(入口):
指定打包的起点文件,Webpack 从入口文件开始构建依赖图。
Output(输出):
指定打包后的文件输出位置和文件名。
Loader(加载器):
用于处理非 JS 文件(如 CSS、图片等),将其转换为 Webpack 能理解的模块。
Plugin(插件):
用于扩展功能,例如压缩代码、提取 CSS 等。
Module(模块):
项目中每个文件都是一个模块,Webpack 会解析模块之间的依赖关系。
Chunk(代码块):
打包后的代码块,可以是入口文件、异步加载的模块或通过 SplitChunksPlugin 拆分的代码。
初始化:
读取配置文件(webpack.config.js),初始化配置参数。
构建依赖图:
从入口文件开始,递归解析模块的依赖关系,生成依赖图。
加载和转换模块:
使用 Loader 对模块进行转换(如将 ES6 转换为 ES5、将 SCSS 转换为 CSS 等)。
优化和打包:
使用 Plugin 对模块进行优化(如压缩代码、提取公共模块等)。
将模块打包成一个或多个 Chunk。
输出文件:
将打包后的 Chunk 写入到输出目录。
const path = require('path');
module.exports = {
entry: './src/index.js',
核心功能:
模块化:将项目中的资源视为模块。
依赖管理:通过依赖图管理模块之间的依赖关系。
打包优化:通过 Loader 和 Plugin 实现代码转换和优化。
适用场景:
适用于现代前端项目的构建和打包。
支持多种资源类型(JS、CSS、图片等)。
优化点:
代码分割(Code Splitting):按需加载,减少首屏加载时间。
缓存优化:通过文件名哈希实现长效缓存。
Tree Shaking:移除未使用的代码。
产品思维的PM程序员~
工作1-3年,基础知识,多看书。多跟着别人做项目,学习经验。
工作3-5年,新知识,高级知识,自己独立做项目,总结经验。尝试不同的语言。
工作5-8年,工作职位,要从设计,管理方面要求自己,可以尝试走管理路线(项目经理或cto)。
工作10年及以上, 自己做些项目,产品,尝试为创业做准备。
上大学和不上大学区别很大,上品牌大学和普通大学区别也很大,后天的努力最大。
---无论它是在遥远的远方,还是在出发的地方、哪里有希望哪里就是我们的方向;终点、只不过是梦想起飞的地方。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。