背景:想要使用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版本内网是满足的,说明包本身兼容性有问题,最好使用旧版本的包。