推送代码至Heroku时遇clean-webpack-plugin参数错误,求解决方案
解决clean-webpack-plugin报错:Error: clean-webpack-plugin only accepts an options object
嘿,这个问题我之前踩过坑!是因为你当前用的是clean-webpack-plugin v3.0.0及以上版本,这个版本的API做了重大调整,不再支持旧版本那种「第一个参数传路径数组,第二个传配置对象」的写法了,现在只接受一个配置对象作为唯一参数。
问题出在哪?
你原来的代码是旧版本的写法:
new CleanWebpackPlugin(['dist'], { root: path.resolve(__dirname, '..'), exclude: '.gitignore' })
在v3+版本里,插件不再接收两个参数,所以才会抛出这个错误。
怎么修改?
把原来的路径数组放到配置对象的cleanOnceBeforeBuildPatterns属性里,其他配置项直接写在同一个对象中,另外注意新版本的exclude参数需要传数组形式(旧版本可以传字符串):
new CleanWebpackPlugin({ cleanOnceBeforeBuildPatterns: ['dist'], root: path.resolve(__dirname, '..'), exclude: ['.gitignore'] // 这里改成数组格式 })
其他方案(不推荐)
如果你暂时不想改代码,也可以降级到v2版本的插件,执行以下命令:
npm install clean-webpack-plugin@2 --save-dev
不过还是更推荐适配新版本的API,避免后续版本兼容问题。
内容的提问来源于stack exchange,提问作者SahJS
相关产品推荐
相关产品推荐

