使用compression-webpack-plugin报错:validate is not a function at new CompressionP...

850 阅读1分钟

背景:想要使用compression-webpack-plugin在打包时生成gz格式文件。在外网下载compression-webpack-plugin 10.0.0版本并导入内网后,内网打包时报错:validate is not a function at new CompressionPlugin。

解决办法:
安装低版本compression-webpack-plugin。

方法1: 新建一个文件夹,进入Powershell窗口后运行:

cnpm install compression-webpack-plugin@6.0.0

并进入node_modules文件夹,复制compression-webpack-plugin。

方法2: vscode进入一个webpack项目,控制台运行:

cnpm install compression-webpack-plugin@6.0.0

并进入项目的文件夹node_modules,复制compression-webpack-plugin。

使用compression-webpack-plugin在打包时生成gz格式文件
修改vue.config.js:

configureWebpack:{
  plugins:[
    new CompressionPlugin({
      filename:'[path][base].gz',
      test:/\.js$|\.css$|\.html$/, // 匹配规则
      threshold: 10240
    })
  ]
}

反思
之前以为是包不全,以为需要进入下载后的compression-webpack-plugin,安装compression-webpack-plugin的依赖,比如之前尝试了安装compression-webpack-plugin的生产依赖(执行cnpm install --production)。但导入内网后仍然没有作用。对于compression-webpack-plugin10.0.0版本,它的package.json中声明的node版本和webpack版本内网是满足的,说明包本身兼容性有问题,最好使用旧版本的包。