webpack使用image-minimizer-webpack-plugin和imagemin-pngquant来打包压缩图片报错,是什么原因呀?

webpack使用image-minimizer-webpack-plugin和imagemin-pngquant来打包压缩图片报错
环境如下:
"webpack": "4.0.0"
"image-minimizer-webpack-plugin": "^1.0.0"
"imagemin": "^8.0.1",
"imagemin-pngquant": "^9.0.2",

配置如下:

const ImageMinimizerPlugin = require("image-minimizer-webpack-plugin")

new ImageMinimizerPlugin({
            test: /\.png(\?.*)?$/i,
            // Only apply this one to files equal to or over 8192 bytes
            filter: (source) => {
              if (source.byteLength >= 8192) {
                return true;
              }

              return false;
            },
            minimizerOptions: {
              plugins: [['pngquant', { optimizationLevel: 5 }],],
            },
          }),

在png图片处报错,
报错信息如下:
error in ./public/static/rechargeImg/wechat.png
Module Error (from ./node_modules/image-minimizer-webpack-plugin/dist/loader.js):
'D:\workHub\dmgp-web-app\node_modules\pngquant-bin\vendor\pngquant.exe'

img

这个问题可能是由于你所使用的pngquant版本和image-minimizer-webpack-plugin插件不兼容导致的。根据你的错误提示,它提到了'D:\workHub\dmgp-web-app\node_modules\pngquant-bin\vendor\pngquant.exe问题'。您可以尝试更新pngquant或image-minimizer-webpack-plugin的版本来解决这个问题。

Vue中创建DOM节点的方法有很多,其中一种是使用template模板,在template中使用指令v-if v-for v-bind来控制节点的创建。例如:

<template>
  <div>
    <button v-if="showButton" v-bind:class="{'active': isActive}" v-on:click="createButton"></button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      showButton: true,
      isActive: true
    }
  },
  methods: {
    createButton() {
      console.log('create button')
    }
  }
}
</script>

点击按钮创建button元素,可以在点击事件中使用JavaScript方法来创建一个新的按钮元素,例如:

<template>
  <div>
    <button v-on:click="createButton"></button>
  </div>
</template>

<script>
export default {
  methods: {
    createButton() {
      let button = document.createElement('button')
      button.innerHTML = 'New button'
      document.body.appendChild(button)
    }
  }
}
</script>