webpack打包生成gz文件

安装插件(compression-webpack-plugin):

npm install compression-webpack-plugin --save-dev

vue.config.js文件进行webpack配置(没有此文件可以在项目根路径创建一个文件):

const CompressionPlugin = require('compression-webpack-plugin');
module.exports = {
        plugins: [
            new CompressionPlugin({
                algorithm: 'gzip', // 使用gzip压缩
                test: /\.js$|\.html$|\.css$/, // 匹配文件名
                //filename: '[path].gz[query]', // 压缩后的文件名(保持原文件名,后缀加.gz)
                minRatio: 1, // 压缩率小于1才会压缩
                threshold: 10240, // 对超过10k的数据压缩
                deleteOriginalAssets: false, // 是否删除未压缩的源文件,谨慎设置,如果希望提供非gzip的资源,可不设置或者设置为false(比如删除打包后的gz后还可以加载到原始资源文件)
 
Invalid options in vue.config.js: "plugins" is not allowed

一开始我将plugins直接放在外边,没加configureWebpack,就报了下面的错,参考了链接,加了configureWebpack就ok啦

var webpack=require('webpack')
const path = require('path');
function resolve (dir) {
    return path.join(__dirname, dir)
module.exports = {
    chainWebpack: config => {
        //路径配置
        config.resolve.alias
            .set('assets', resolve('src/assets'))
            .set('styles', resolve('src/assets/styles'))
    // webpack-dev-server 相关配置  
    devServer: {
        // 调试端口
        // port: 8989
    //其他配置....
    configureWebpack: {
        plugins: [
            new webpack.ProvidePlugin({
                $: "jquery",
                jQuery: "jquery",
                "windows.jQuery": "jquery"
 
解决 TypeError: Cannot read property ‘tapPromise‘ of undefined

在使用 compression-webpack-plugin 插件时报这个错误,原因是版本问题。

ERROR TypeError: Cannot read property 'tapPromise' of undefined

TypeError: Cannot read property 'tapPromise' of undefined

安装插件的时候默认最新版本,但是可能脚手架还不支持这个版本,所以需要降低插件版本进行使用,这边在安装的时候最新版本为 v9.2.0,降到 v6.1.1 进行使用

$ npm install compression-webpack-plugin@6.1.1

然后重新打包正常!

一、静态:webpack使用gzip打包,nginx配置gzip_static打开 1、webpack使用gzip 1)npm安装 compression-webpack-plugin 模块 2)vue.config.js中配置 const CompressionPlugin = require('compression-webpack-plugin') const productionGzipExtensions = /\.(js|css|json|txt|html|ico| 3.*.bz2:bzip2程序压缩的文件; 4.*.tar:tar程序打包的数据,没有经过压缩; 5.*.tar.gz(*.tgz):tar程序打包的文件,其中经过gzip程序压缩; 6.*.tar.bz2:tar程序打包的文件,其中经过bzip2程序压缩; 二.gzip