webpack(十)之Compiler和Compilation的区别
Compiler和Compilation的区别
compiler 在 webpack 构建之初就已经创建,并且贯穿webpack整个生命周 ( before - run - beforeCompiler - complie - make - finishMake - afterComplier - done)
只要是做webpack编译,都会先创建一个compiler
compilation是到准备编译模块时,才会创建compilation对象
是 compile - make 阶段主要使用的对象
为什么需要compilation
在使用watch,源代码发生改变的时候就需要重新编译模块,但是compiler可以继续使用
如果使用compiler则需要初始化注册所有plugin,但是plugin没必要重新注册
这时候就需要创建一个新的compilation对象
而只有修改新的webpack配置才需要重新运行 npm run build 来重新生成 compiler对象