webpack的构建流程是什么? 开始之前先来看一下webpack的6大核心概念 构建流程 webpack是一个串行的过程,从启动到结束会依次执行以下流程 初始化参数 从shell参数和配置文件合并参数,得出最终的参数 每次在命令行输入 webpack 后,操作系统都会去调用 ./nodemodules/.bin/webpack 这个 shell 脚本。这个脚本会去调用 ./nodemodules/webpack/bin/webpack.js 并追加输入的参数,如 -p , -w 在 webpack.js 这个文件中 webpack 通过 optimist 将用户配置的 webpack.config.js 和 shell 脚本传过来的参数整合成 options 对象传到了下一个流程的控制对象中。 开始编译 从上一步获得的参数初始化compiler对象,加载所有的插件,通过run方法执行编译。 确定入口 在创建 module 之前,Compiler 会触发 make,并调用 Compilation.addEntry 方法,通过 options 对象的 entry 字段找到我们的入口js文件 编译模块 从入口文件开始,调用所有配置的loader对模块进行翻译成compliation,然后递归所有依赖的模块,重复编译。得到每个模块翻译后的最终内容以及它们之间的依赖关系。 可以分为三个部分帮助记忆 输出资源 根据入口和模块的依赖关系,组装成一个个包含多个模块的chunk,然后将chunk转换成一个单独的文件加入输出列表,这是可以修改输出内容的最后机会 输出完成 在确定好输出内容后,根据配置确定输出的路径和文件名,将文件的内容写入文件系统上 最后上一张图片function webpack(options){
var compiler = new Compiler ();
... // 检查options,若watch字段为true,则开启watch线程
return compiler
;
}