代码转换: typeScript 编译成 javaScript、scss,less 编译成 css.
文件优化:压缩 javaScript、css、html 代码,压缩合并图片。
代码分割:提取多个页面的公共代码、提取首屏不需要执行部分的代码让其异步加载。
模块合并:在采用模块化的项目里会有很多个模块和文件,需要构建功能把模块分类合并成一个文件。
自动刷新:监听本地源代码的变化,自动重新构建、刷新浏览器。
扩展性强,插件机制完善。
webpack打包过程:
利用babel完成代码转换,并生成单个文件的依赖
从入口开始递归分析,并生成依赖图谱
将各个引用模块打包为一个立即执行函数
将最终的bundle文件写入bundle.js中
Webpack 的四大核心:
entry:js 入口源文件
output:生成文件
loader:进行文件处理
plugins:插件,比 loader 更强大,能使用更多 webpack 的 api