webpack插件的格式很简单,实现一个带有apply方法的对象即可,例:

    1. class MyPlugin {
    2. /**
    3. * Apply the plugin
    4. * @param {Compiler} compiler Webpack Compiler
    5. * @returns {void}
    6. */
    7. apply(compiler) {
    8. compiler.hooks.compilation.tap(
    9. "MyPlugin",
    10. (compilation) => {
    11. // TODO: 插件的操作
    12. }
    13. );
    14. }
    15. }

    插件的原理很简单,在webpack初始化参数的时候,将插件注册在webpack的相应的钩子上(compiler.hooks.xxx),在不同阶段去调用达到最终的目的

    webpack的钩子在webpack原理里有介绍