vite+vue3项目需要手动启用Gzip压缩吗?怎么启用splitChunks呢?

vue2项目性能优化有配置compression-webpack-plugin插件:

img

也可以配置了webpack的splitChunks切片:

img

但是基于vite的vue3项目没有vue.config.js文件,是vite.config.js怎么配置splitChunks切片呢?

【以下回答由 GPT 生成】

使用vue-cli工具创建Vue3项目时,默认已经配置了webpack,因此可以直接在项目的vue.config.js文件中进行配置。

首先,确保项目中已安装了compression-webpack-plugin插件。可以通过以下命令安装:

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

接下来,在vue.config.js文件中添加以下配置:

const CompressionPlugin = require('compression-webpack-plugin');

module.exports = {
  configureWebpack: {
    plugins: [
      new CompressionPlugin()
    ]
  },
  chainWebpack: (config) => {
    config.optimization.splitChunks({
      chunks: 'all',
      minSize: 20000,
      maxSize: 70000,
      minChunks: 1,
      maxAsyncRequests: 30,
      maxInitialRequests: 30,
      cacheGroups: {
        vendor: {
          test: /[\\/]node_modules[\\/]/,
          name(module) {
            const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1];
            return `npm.${packageName.replace('@', '')}`;
          }
        }
      }
    });
  }
}

这段配置的作用是开启Gzip压缩,并配置了splitChunks切片。

  • plugins: 使用CompressionPlugin插件来开启Gzip压缩。
  • chainWebpack: 使用chainWebpack函数,对webpack配置进行链式修改。
  • config.optimization.splitChunks: 配置splitChunks切片的参数。
    • chunks: 对所有类型的代码块进行切片,包括同步和异步代码。
    • minSize: 设置切片的最小文件大小。
    • maxSize: 设置切片的最大文件大小。
    • minChunks: 设置一个模块被引用多少次才会被切片。
    • maxAsyncRequests: 设置同时加载的切片数量上限。
    • maxInitialRequests: 设置初始加载的切片数量上限。
    • cacheGroups: 配置切片的缓存组。
    • vendor: 配置用于切片的缓存组名称。
      • test: 使用正则表达式匹配需要被切片的模块。
      • name: 配置切片的名称。

以上配置完成后,重新运行项目即可生效。请确保你的项目符合需要Gzip压缩和splitChunks的条件,例如有较多的第三方库文件需要被切片。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^