Vue3+vite打包配置及部分打包优化~

server/2024/9/24 6:13:41/

这里介绍的是vite项目的打包配置,若想了解webpack打包配置可看我的其他博客。(下面来介绍下vite打包配置的步骤)

1、步骤一:配置base。(为什么需要配置base?这里配置base主要是修改根路径,一般我们在开发环境中引用静态资源可能使用的是绝对路径,但是一旦打包部署到服务器上后可能会报404,无法正确的获取的资源。)

//在vite.config.ts中
import { defineConfig } from 'vite'export default defineConfig({
//配置根路径,解决部署到服务器之后绝对路径会报404问题,所以需改为相对路径base:"./",
})

2、步骤二:可根据需要配置组件及静态资源路径别名(若配置了路径别名使用方法和typescript的类型别名一样,直接替换原路径即可)

//在vite.config.ts中
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
//配置组件路径别名需引入resolve
import{resolve} from 'path'export default defineConfig({//配置根路径,解决部署到服务器之后绝对路径会报404问题,所以需改为相对路径base:"./",// 路径别名resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url)),// 组件路径别名,语法:别名:resolve(__dirname,'组件原路径')com:resolve(__dirname,'src/component'),//静态资源路径别名'./image':'src/assets'}}
})

3、步骤三:配置生产环境移除console.log。

//在vite.config.ts中
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import{resolve} from 'path'export default defineConfig({//配置根路径,解决部署到服务器之后绝对路径会报404问题,所以需改为相对路径base:"./",// 路径别名resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url)),// 组件路径别名,语法:别名:resolve(__dirname,'组件原路径')com:resolve(__dirname,'src/component'),//静态资源路径别名'./image':'src/assets'}},// 生产环境移除console.log的配置build:{// 默认是esbuild,但这里需要改成terser,并且想使用terser的话,需提前安装,命令为npm add -D                         
//terserminify:"terser",terserOptions: {compress: {//生产环境时移除consoledrop_console: true,drop_debugger: true,},},}
})

4、步骤四:设置代理解决跨域。(使用方法与webpack解决跨域一样)

//在vite.config.ts中
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import{resolve} from 'path'export default defineConfig({//配置根路径,解决部署到服务器之后绝对路径会报404问题,所以需改为相对路径base:"./",server: {proxy: {// 字符串简写写法,其他方法可看vite官网,使用方法与webpack解决跨域一样'/foo': 'baseURL地址',}},// 路径别名resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url)),// 组件路径别名,语法:别名:resolve(__dirname,'组件原路径')com:resolve(__dirname,'src/component'),//静态资源路径别名'./image':'src/assets'}},// 生产环境移除console.log的配置build:{// 默认是esbuild,但这里需要改成terser,并且想使用terser的话,需提前安装,命令为npm add -D terserminify:'terser',terserOptions: {compress: {//生产环境时移除consoledrop_console: true,drop_debugger: true,},},}
})

5、打包优化,使用CDN分发。(忽略,后面更新)

//安装cdn插件
npm install vite-plugin-cdn-import --save-dev
//引入插件,在vite.config.ts中
//import importToCDN from "vite-plugin-cdn-import"
//或
import { Plugin as importToCDN } from "vite-plugin-cdn-import"

6、代码压缩。

npm i vite-plugin-compression -D
//在vite.config.ts中
import viteCompression from 'vite-plugin-compression'
//在plugins中配置即可
plugins: [viteCompression(),
]

7、图片压缩。

npm i vite-plugin-imagemin -D
//在vite.config.ts中
import viteImagemin from 'vite-plugin-imagemin'
//在plugins下写
viteImagemin({gifsicle: {optimizationLevel: 7,interlaced: false},optipng: {optimizationLevel: 7},mozjpeg: {quality: 20},pngquant: {quality: [0.8, 0.9],speed: 4},svgo: {plugins: [{name: 'removeViewBox'},{name: 'removeEmptyAttrs',active: false}]}})

8、打包命令配置。

//在package.json中
"build": "vite build",


http://www.ppmy.cn/server/99736.html

相关文章

一文打通pytorch中几个常见的张量操作

在张量操作中,unsqueeze,squeeze,reshape,view 1. unsqueeze 功能: 在指定维度上增加一个新的维度,通常用于将一维张量扩展为二维,以便符合批处理的要求。举例:import torchx torch.tensor([1, 2, 3]) # Shape: (3,) y x.unsqueeze(0) …

Qt实现自定义控件的两种方式之提升法

一:提升Qt设计师界面类 第一步:添加新文件选择Qt设计师界面类 第二步:选择界面模板 看自己需求,一般不需要怎么更改 第三步:为设计师界面类起一个类名 类名不能全是小写,要不然后面会出错 此时可以添加一…

Java如何使用 HTTP 请求下载图片

工具类: public FileInputStream fileDownload(String fileLink) throws Exception {System.out.println("开始下载"fileLink);// 转码中文URL url new URL(encodeURLChinese(fileLink));System.out.println("fileLink:"url);// 开始下载Trust…

Redis的六种淘汰策略详解

Redis作为一种高性能的键值对存储系统,其数据全部存储在内存中,因此内存管理对Redis的性能至关重要。当Redis的内存使用达到上限时,就需要通过淘汰策略来释放内存空间,以便存储新的数据。Redis提供了六种不同的淘汰策略&#xff0…

15.2 Scikit-learn简介与常用模型

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 工💗重💗hao💗:野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.…

【第九节】python中xml解析和json编解码

目录 一、Python XML 解析 1.1 什么是XML 1.2 Python 对 XML 的解析方法 1.3 SAX解析xml 1.4 xml.dom解析xml 1.6 ElementTree解析XML 二、Python编解码json 2.1 什么是json 2.2 使用json 库 2.3 使用第三方库Demjson 一、Python XML 解析 1.1 什么是XML XML&#x…

Vue 应用实例的关键方法与配置案例二

目录 createApp createSSRApp app.mount app.unmount app.component app.directive Vue3.X自定义全局指令 Vue2.X自定义全局指令 app.use app.mixin 非 VIP 用户能够免费下载博文资源 createApp 详见上一章节:Vue 应用实例的关键方法与配置案例一-CSDN博客 createSS…

数字化营销利器:企元数智小程序合规分销系统免费获取!

在当今数字化时代,营销策略已经成为企业成功的关键。为了帮助企业更好地实现数字化营销,企元数智小程序合规分销系统应运而生,成为了企业的得力助手。 企元数智小程序合规分销系统集合了先进的科技和创新理念,为企业营销带来了全新…