Webpack 打包时出现”ERROR in Cannot read property 'tap' of undefined” 错误怎么办?

阅读时长 3 分钟读完

在开发前端项目时,我们经常会使用 Webpack 进行打包,但是有时候在打包过程中会出现各种错误,比如今天我们要介绍的错误:”ERROR in Cannot read property 'tap' of undefined”。

错误原因

这个错误通常是由于 Webpack 版本升级或者插件版本不兼容所导致的。具体来说,就是在 Webpack 4 之前,插件注册的方式是通过 compiler.plugin(),但是在 Webpack 4 之后,这个方法被废弃了,取而代之的是 compiler.hooks

如果你的 Webpack 版本升级了,但是你使用的插件还是老的注册方式,就会出现这个错误。

解决方法

解决这个错误的方法很简单,就是将插件的注册方式改成新的方式即可。具体来说,就是将 compiler.plugin() 改成 compiler.hooks

下面是一个示例代码,假设我们在使用 html-webpack-plugin 插件时出现了这个错误:

-- -------------------- ---- -------
----- ----------------- - -------------------------------

-------------- - -
  -- ---
  -------- -
    --- -------------------
      --------- ------------
    --
  -
--

这里我们可以将 compiler.plugin() 改成 compiler.hooks

-- -------------------- ---- -------
----- ----------------- - -------------------------------

-------------- - -
  -- ---
  -------- -
    -
      ------ ---------- -- -
        --------------------------------------------------- ------------- -- -
          ------------------------------------------------------------
            --------------------
            ------ --- -- -
              -- -- ----
              -------- ------
            -
          --
        ---
      -
    -
  -
--

这样就可以解决这个错误了。

总结

Webpack 是前端项目中必不可少的工具,但是在使用过程中难免会出现各种错误。本文介绍了一种常见的错误:”ERROR in Cannot read property 'tap' of undefined”,并提供了解决方法。希望本文能帮助到大家,让大家在使用 Webpack 时更加顺畅。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651148e295b1f8cacd9b9f8d

纠错
反馈