使用 css-minimizer-webpack-plugin 构建时无法读取未定义的属性“tapPromise”

问题描述

webpack.common.js

optimization: {
  minimize: true,minimizer: [
    new CssMinimizerPlugin({
      test: /\.foo\.css$/i,//or already used
      test: /\.css(\?.*)?$/i
    }),],},

有什么建议是什么问题吗?

解决方法

这个错误大概是指

compilation.hooks.processAssets.tapPromise

您可以将 processAssets hook 与高于 5 的 Webpack 版本一起使用。 css-minimizer-webpack-plugin 自版本 1.1.0 起在 processAssets 挂钩上迁移。

基本上,有两种方法可以解决此问题:

  • css-minimizer-webpack-plugin 的版本降低到 1.0.0

     npm uninstall css-minimizer-webpack-plugin
    
     npm install css-minimizer-webpack-plugin@1.0.0
    

  • 将 webpack 升级到 5 以上。如果您选择此选项,您可能需要研究 migration docs