webpack学习笔记
webpack的核心机制分为两部分,loader和plugins。
loader是不同类型模块的加载器,默认Loader加载js,其余的资源需要各自不同的专用Loader来加载。如css,需要css-loader,style-loader,html需要html-loader,等等。
plugins承包除了加载打包成统一的bundle.js外的所有前端工程化功能,如:自动生成html,自动复制指定路径下的资源文件到目标文件夹(一般是dist),清除上次打包结果等等。插件可以自定义,根据定义时使用的钩子不同,可以作用在打包时间周期的各个阶段,实现非常多功能。
webpack打包的通常流程:
1. 前置流程,大致就是生成webpack的核心上下文——compiler。这里还需要再学习和深入理解一下。
2. 找到配置文件中的应用入口,一般是index.js或main.js,从入口文件触发,生成资源和模块的依赖树。
3. 对不同类型的模块,采用不同的loader进行解析,解析出的js代码,依次放到统一输出,如bundle.js中。
4. 在生命周期的不同阶段,引入对应插件,执行相关操作,如资源复制等。
5. 将bundle.js,html,资源等输出到指定路径,完成打包。