什么是plugin
plugin能帮助我们在webpack打包生成文件的某个事件段帮我们做一些事,类似于Vue中的生命周期函数。例如html-webpack-plugin能帮我们在打包结束生成html文件,并把打包生成的脚本文件插入html中。
plugin的编写
假如我们想写一个plugin,这个plguin能帮我们在打包生成文件之后再生成一个.txt文件,里面写我们的版权信息。实现代码如下:
1 | class CopyrightWebpackPlugin { |
代码解读
插件是一个类
向插件传递参数:通过在webpack配置的new xxx里写对象属性(如下面的代码),而插件的constructor的参数则能接收这个对象(如上面的代码的constructor部分)。
1 | plugins: [ |
compiler
compiler对象是webpack的实例,compiler有很多hooks(钩子),挑选合适的钩子(eg. emit
)写要执行的操作即可。
compilation
compilation里存放的是这一次打包的所有内容,eg. 打包生成的内容是放在compilation.assets
中。