使用clean-webpack-plugin插件时,运行报错:

TypeError: CleanWebpackPlugin is not a constructor

TypeError: CleanWebpackPlugin is not a constructor
    at Object.<anonymous> (/Users/maomao/Documents/demo/h5/mm_webpack/webpack.config.js:61:5)

原配置如下:

const CleanWebpackPlugin = require('clean-webpack-plugin')

module.exports = {
    plugins: [
        new CleanWebpackPlugin(['dist'])
    ],
}

原因是require("clean-webpack-plugin")导出的是一个对象属性,

解决办法:

所以我们在引入的时候需要以解构的方式来获取,如下:

const { CleanWebpackPlugin } = require('clean-webpack-plugin')

module.exports = {
    plugins: [
        new CleanWebpackPlugin(['dist'])
    ],
}

继续npm run build运行,发现报另一个错:

Error: clean-webpack-plugin only accepts an options object.

Error: clean-webpack-plugin only accepts an options object. See:
            https://github.com/johnagan/clean-webpack-plugin#options-and-defaults-optional
    at new CleanWebpackPlugin (/Users/maomao/Documents/demo/h5/mm_webpack/node_modules/clean-webpack-plugin/dist/clean-webpack-plugin.js:27:13)
    at Object.<anonymous> (/Users/maomao/Documents/demo/h5/mm_webpack/webpack.config.js:61:5)

报错提示说:CleanWebpackPlugin构造函数传入的参数不符合格式

修改配置如下:

const { CleanWebpackPlugin } = require('clean-webpack-plugin')

module.exports = {
    plugins: [
        new CleanWebpackPlugin()
    ],
}

原来新版本已经不需要传入

  "./dist"//需要删除的文件夹路径

大概是自动从output中获取了打包目录。

再次运行npm run build

成功。

特别鸣谢:码飞_CC