Part2-模块二

一、简单题
1、Webpack 的构建流程主要有哪些环节?如果可以请尽可能详尽的描述 Webpack 打包的整个过程。

主要环节:
(1)读取到入口文件里面的内容
(2)分析入口文件,递归的去读取模块所依赖的文件内容,生成AST语法树
(3)根据AST语法树,生成浏览器能够运行的代码
构建分析:
初始化

entry-options启动:
从配置文件和shell语句中读取合并参数,得出最终的参数。

run实例化:
compiler:用上一步得到的参数初始化Compiler对象,加载所有配置的插件,执行对象的run方法执行编译

编译构建:
entry 确定入口
根据配置中的 entry 找出所有入口文件

make 编译模块
从入口文件触发,调用所有配置的Loader对模块进行编译,再找出该模块依赖的模块,再递归本步骤知道所有入口依赖的文件都经过了本步骤的处理

build module 完成模块编译
经过上面一步使用Loader翻译完所有模块后,得到了每个模块被翻译后的最终内容以及它们之间的依赖关系

seal 输出资源
根据入口和模块之间的依赖关系,组装成一个个包含多个模块的 Chunk,再把每个 Chunk 转换成一个单独的文件加入到输出列表,这步是可以修改输出内容的最后机会

emit 输出完成
在确定好输出内容后,根据配置确定输出的路径和文件名,把文件内容写入到文件系统

2、Loader 和 Plugin 有哪些不同?请描述一下开发 Loader 和 Plugin 的思路。

Loader专注实现资源模块加载,从而实现整体项目的打包
Plugin解决其他自动化工作,比如:清除dist目录,拷贝静态文件到输出目录,压缩输出代码

编程题
使用 Webpack 实现 Vue 项目打包任务

https://gitee.com/wpengw/part2-webpack.git

你可能感兴趣的:(webpack)