vue-cli3 打包优化之 splitchunks详解

 更新时间:2023年07月06日 11:12:27   作者:DongFuPanda  
这篇文章主要介绍了vue-cli3 打包优化之 splitchunks的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

vue-cli3 打包优化之 splitchunks

Dllplugin 可以把常用库抽离出来,包括 vue,vuex之类的库。但是 ant design vue 是按需加载,且随时有可能引入新的组件,显然不适合放进 dll 中。直接和其他文件打进 vendor.js 有会很大,所以需要将其再单独抽离出来,我决定在 config.optimization.splitChunks 配置如下:

const IS_PROD = process.env.NODE_ENV === 'production'
module.exports = {
  chainWebpack(config) {
    if (IS_PROD) {
      config.optimization.splitChunks({
        cacheGroups: {
          common: {
            name: 'chunk-common', // 打包后的文件名
            chunks: 'initial', // 
            minChunks: 2,
            maxInitialRequests: 5,
            minSize: 0,
            priority: 1,
            reuseExistingChunk: true
          },
          vendors: {
            name: 'chunk-vendors',
            test: /[\\/]node_modules[\\/]/,
            chunks: 'initial',
            priority: 2,
            reuseExistingChunk: true,
            enforce: true
          },
          antDesignVue: {
            name: 'chunk-ant-design-vue',
            test: /[\\/]node_modules[\\/]ant-design-vue[\\/]/,
            chunks: 'initial',
            priority: 3,
            reuseExistingChunk: true,
            enforce: true
          }
        }
      })
    }
  }
}

关于 webpack4 的 splitChunks 还是有很多知识需要了解的,下文将进行简要的介绍。

splitChunks 常用参数

  • name 打包的 chunks 的名字
  • test 匹配到的模块奖杯打进这个缓存组
  • chunks 代码块类型 必须三选一: “initial”(初始化) | “all”(默认就是 all) | “async”(动态加载)默认 Webpack 4 只会对按需加载的代码做分割。如果我们需要配置初始加载的代码也加入到代码分割中,可以设置为 ‘all’
  • priority :缓存组打包的先后优先级,数值大的优先
  • minSize (默认是30000)形成一个新代码块最小的体积
  • minChunks (默认是1)在分割之前,这个代码块最小应该被引用的次数
  • maxInitialRequests (默认是3)一个入口最大的并行请求数
  • maxAsyncRequests(默认是5)按需加载时候最大的并行请求数
  • reuseExistingChunk 如果当前的 chunk 已被从 split 出来,那么将会直接复用这个 chunk 而不是重新创建一个
  • enforce 告诉 webpack 忽略 splitChunks.minSize, splitChunks.minChunks, splitChunks.maxAsyncRequests and splitChunks.maxInitialRequests,总是为这个缓存组创建 chunks

vue cli3安装教程

Vue CLI 3是一个基于Vue.js的标准化工具,用于快速构建Vue.js项目。它的安装非常简单,本文将介绍如何安装Vue CLI 3。

首先,我们需要确保已经安装了Node.js和npm。如果您还没有安装,请先下载并安装Node.js,然后npm也将自动安装。

接下来,我们可以使用以下命令安装Vue CLI 3:

npm install -g @vue/cli

这将全局安装Vue CLI 3,以后就可以在任何位置使用Vue CLI 3来创建Vue.js项目了。

安装完成后,您可以使用以下命令检查是否成功安装了Vue CLI 3:

vue --version

如果成功安装,则您应该能够看到Vue CLI 3的版本号。

现在,我们已经成功安装了Vue CLI 3,可以使用它来创建新的Vue.js项目了。您可以使用以下命令创建一个新的Vue.js项目:

vue create my-project

这将创建一个名为“my-project”的新Vue.js项目,并在其中初始化所有必需的文件和依赖项。

以上就是安装Vue CLI 3的简单教程。如果您想要更深入地了解Vue CLI 3的详细用法和功能,请查看Vue CLI 3的官方文档。

到此这篇关于vue-cli3 打包优化之 splitchunks的文章就介绍到这了,更多相关vue-cli3 打包优化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue3+vite引入插件unplugin-auto-import的方法

    vue3+vite引入插件unplugin-auto-import的方法

    这篇文章主要介绍了vue3+vite引入插件unplugin-auto-import的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2022-10-10
  • 基于Vue实现封装一个虚拟列表组件

    基于Vue实现封装一个虚拟列表组件

    正常情况下,我们对于数据都会分页加载,最近项目中确实遇到了不能分页的场景,如果不分页,页面渲染几千条数据就会感知到卡顿,使用虚拟列表就势在必行了。本文主要介绍了如何基于Vue实现封装一个虚拟列表组件,感兴趣的可以了解一下
    2023-03-03
  • vue3发送验证码倒计时功能的实现(防止连点、封装复用)

    vue3发送验证码倒计时功能的实现(防止连点、封装复用)

    这篇文章主要介绍了vue3发送验证码倒计时功能的实现(防止连点、封装复用),实现思路是点击发送验证码,验证码倒计时,校验手机号是否正常等一系列操作,本文通过示例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • ant design的table组件实现全选功能以及自定义分页

    ant design的table组件实现全选功能以及自定义分页

    这篇文章主要介绍了ant design的table组件实现全选功能以及自定义分页,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Vue中对象数组改变其对象内容值数组没变化的原因与解决方案

    Vue中对象数组改变其对象内容值数组没变化的原因与解决方案

    最近开发遇到一个问题,修改对象某一个索引对象时,直接将对象赋值给数组的某一索引对象,该数组没变化,在 Vue 中,直接修改对象数组中某个对象的属性值时,数组的引用本身未改变,本文介绍了详细的原理分析和解决方案,需要的朋友可以参考下
    2025-03-03
  • 使用vue.js实现checkbox的全选和多个的删除功能

    使用vue.js实现checkbox的全选和多个的删除功能

    这篇文章主要介绍了使用vue.js实现checkbox的全选和多个的删除功能,需要的朋友可以参考下
    2017-02-02
  • vue.config.js中配置分包策略及常见的配置选项

    vue.config.js中配置分包策略及常见的配置选项

    在Vue.js中分包(Code Splitting)是一种将应用程序代码拆分为不同的块或包的技术,从而在需要时按需加载这些包,下面这篇文章主要给大家介绍了关于vue.config.js中配置分包策略及常见的配置选项的相关资料,需要的朋友可以参考下
    2024-02-02
  • vue v-on:click传递动态参数的步骤

    vue v-on:click传递动态参数的步骤

    这篇文章主要介绍了vue v-on:click传递动态参数的步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • vue element实现多个Formt表单同时验证

    vue element实现多个Formt表单同时验证

    这篇文章主要介绍了vue element实现多个Formt表单同时验证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 完美解决vue引入BMapGL is not defined的问题

    完美解决vue引入BMapGL is not defined的问题

    在Vue项目中使用BMapGL时,通过在src下添加bmp.js文件并配置密钥(ak),可以有效解决地图API的应用问题,本方法是基于个人经验总结,希望能为开发者提供参考和帮助
    2024-10-10

最新评论