Vue3+Vite打包配置全过程(包括分包配置)

 更新时间:2025年12月03日 10:56:42   作者:Z兽兽  
文章主要介绍了在vite.config.ts文件中配置环境变量、代码压缩及分包策略的方法,通过配置output.manualChunks,项目打包后会将第三方包和业务代码分开,更新业务代码时只需更新index.js,从而利用缓存提升加载速度

vite.config.ts文件中配置环境变量

1. 基本配置说明

import { defineConfig } from 'vite'
//配置组件路径别名需引入resolve
import{ resolve } from 'path'
 
export default defineConfig({
  //配置根路径,解决部署到服务器之后绝对路径会报404问题,所以需改为相对路径
  base:"./",

  server: {
    open: true,  //自动打开浏览器
    proxy: {
      // 字符串简写写法,其他方法可看vite官网,使用方法与webpack解决跨域一样
      '/foo': 'baseURL地址',
    }
  },

  // 路径别名
  resolve: {
    dedupe: ['vue'],
	alias: [{
      find: '@',
	  replacement: resolve(__dirname, 'source')
	}]
  },

  // 生产环境移除console.log的配置
  build:{
    // 默认是esbuild,但这里需要改成terser,并且想使用terser的话,需提前安装,命令为npm add -D terser                     
    minify:"terser",
    outDir: "dist",
    terserOptions: {
      compress: {
        //生产环境时移除console
        drop_console: true,
        drop_debugger: true,
      },
      format: {
		comments: false,      // 删除注释
	  }
    },
  },
  plugins: [],
})

2. 代码压缩

//下载包
npm i vite-plugin-compression -D
//在vite.config.ts中
import viteCompression from 'vite-plugin-compression'


//在plugins中配置即可
plugins: [
  viteCompression({ verbose: true, disable: false, threshold: 10240, algorithm: 'gzip', ext: '.gz' }), 
]

3. 分包策略 使用output.manualChunks

build: {
	rollupOptions: {
		output: {
            //1) 使用函数方式
			manualChunks: (id:any) => {
				if (id.includes('node_modules')) {
					if (id.includes('element-plus')) return 'element-plus';
					else if (id.includes('lodash')) return 'lodash';
				}
			},
            //2) 使用键值对的方式
            manualChunks: {
                'element': ['element-plus']
            }

            //打包后的文件命名格式
			entryFileNames: `js/[name].[hash].js`,
			chunkFileNames: `js/[name].[hash].js`,
			assetFileNames: `static/[ext]/[hash].[ext]`
		}
	}
},

以下是我自己的项目打包后的dist包详情,引入的第三方包都各自拆分为包,业务代码在index.js中。

这样以后再有业务更新时 只需要更新index,不需要更新第三方包,可以读取缓存,提升加载速度

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解VUE 数组更新

    详解VUE 数组更新

    这篇文章主要介绍了VUE 数组更新问题,文中给大家介绍了vue如何监听数据的变化的 ,需要的朋友可以参考下
    2017-12-12
  • 在Vue中导入并读取Excel数据的操作步骤

    在Vue中导入并读取Excel数据的操作步骤

    在工作中遇到需要前端上传excel文件获取到相应数据处理之后传给后端并且展示上传文件的数据,所以本文就来给大家介绍一下Vue中导入并读取Excel数据的操作步骤,需要的朋友可以参考下
    2023-08-08
  • vue3使用vite搭建的项目需要安装的插件/配置方式

    vue3使用vite搭建的项目需要安装的插件/配置方式

    这篇文章主要介绍了vue3使用vite搭建的项目需要安装的插件/配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 使用vue实现玉兔迎春图高亮示例详解

    使用vue实现玉兔迎春图高亮示例详解

    这篇文章主要为大家介绍了使用vue实现玉兔迎春图高亮示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • iview实现select tree树形下拉框的示例代码

    iview实现select tree树形下拉框的示例代码

    这篇文章主要介绍了iview实现select tree树形下拉框的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • Vue+Element实现网页版个人简历系统(推荐)

    Vue+Element实现网页版个人简历系统(推荐)

    这篇文章主要介绍了Vue+Element实现网页版个人简历系统,需要的朋友可以参考下
    2019-12-12
  • Vue中常用的rules校验规则的实现

    Vue中常用的rules校验规则的实现

    在vue开发中,难免遇到各种表单校验,本文主要介绍了Vue中常用的rules校验规则的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • vue3组件的v-model:value与v-model的区别解析

    vue3组件的v-model:value与v-model的区别解析

    在Vue3中,v-model和v-model:value都是用于实现双向数据绑定的语法糖,但v-model:value提供了更显式和灵活的绑定方式,允许你明确指定绑定的属性名和事件名,它们的主要区别在于默认行为、灵活性、多模型绑定和使用场景,感兴趣的朋友一起看看吧
    2025-02-02
  • vue之nextTick全面解析

    vue之nextTick全面解析

    本篇文章主要介绍了vue之nextTick全面解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • VUEJS实战之构建基础并渲染出列表(1)

    VUEJS实战之构建基础并渲染出列表(1)

    这篇文章主要为大家详细介绍了VUEJS实战之构建基础并渲染出列表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06

最新评论