webpack插件的格式很简单,实现一个带有apply方法的对象即可,例:
class MyPlugin {
/**
* Apply the plugin
* @param {Compiler} compiler Webpack Compiler
* @returns {void}
*/
apply(compiler) {
compiler.hooks.compilation.tap(
"MyPlugin",
(compilation) => {
// TODO: 插件的操作
}
);
}
}
插件的原理很简单,在webpack初始化参数的时候,将插件注册在webpack的相应的钩子上(compiler.hooks.xxx),在不同阶段去调用达到最终的目的
webpack的钩子在webpack原理里有介绍