Vue3+Vite打包配置全過(guò)程(包括分包配置)
vite.config.ts文件中配置環(huán)境變量
1. 基本配置說(shuō)明
import { defineConfig } from 'vite'
//配置組件路徑別名需引入resolve
import{ resolve } from 'path'
export default defineConfig({
//配置根路徑,解決部署到服務(wù)器之后絕對(duì)路徑會(huì)報(bào)404問(wèn)題,所以需改為相對(duì)路徑
base:"./",
server: {
open: true, //自動(dòng)打開(kāi)瀏覽器
proxy: {
// 字符串簡(jiǎn)寫(xiě)寫(xiě)法,其他方法可看vite官網(wǎng),使用方法與webpack解決跨域一樣
'/foo': 'baseURL地址',
}
},
// 路徑別名
resolve: {
dedupe: ['vue'],
alias: [{
find: '@',
replacement: resolve(__dirname, 'source')
}]
},
// 生產(chǎn)環(huán)境移除console.log的配置
build:{
// 默認(rèn)是esbuild,但這里需要改成terser,并且想使用terser的話,需提前安裝,命令為npm add -D terser
minify:"terser",
outDir: "dist",
terserOptions: {
compress: {
//生產(chǎn)環(huán)境時(shí)移除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) 使用函數(shù)方式
manualChunks: (id:any) => {
if (id.includes('node_modules')) {
if (id.includes('element-plus')) return 'element-plus';
else if (id.includes('lodash')) return 'lodash';
}
},
//2) 使用鍵值對(duì)的方式
manualChunks: {
'element': ['element-plus']
}
//打包后的文件命名格式
entryFileNames: `js/[name].[hash].js`,
chunkFileNames: `js/[name].[hash].js`,
assetFileNames: `static/[ext]/[hash].[ext]`
}
}
},以下是我自己的項(xiàng)目打包后的dist包詳情,引入的第三方包都各自拆分為包,業(yè)務(wù)代碼在index.js中。
這樣以后再有業(yè)務(wù)更新時(shí) 只需要更新index,不需要更新第三方包,可以讀取緩存,提升加載速度

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- vue3+ts vite打包結(jié)構(gòu)控制通過(guò)rollup進(jìn)行配置方式
- 解決vite+vue3項(xiàng)目打包后圖片不顯示或者請(qǐng)求路徑多了一個(gè)undefined問(wèn)題
- Vue3之vite打包優(yōu)化方式
- VUE3項(xiàng)目VITE打包優(yōu)化的實(shí)現(xiàn)
- vue3+vite使用History路由模式打包部署項(xiàng)目的步驟及注意事項(xiàng)
- VUE3?Vite打包后動(dòng)態(tài)圖片資源不顯示問(wèn)題解決方法
- Vue3在history模式下如何通過(guò)vite打包部署白屏
相關(guān)文章
在vue-cli項(xiàng)目中使用bootstrap的方法示例
本篇文章主要介紹了在vue-cli項(xiàng)目中使用bootstrap的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
Element-ui/Element-plus?Vue報(bào)錯(cuò)問(wèn)題及解決
這篇文章主要介紹了Element-ui/Element-plus?Vue報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
Vue 中如何利用 new Date() 獲取當(dāng)前時(shí)間
在 Vue 開(kāi)發(fā)中,利用 new Date() 方法可以方便地獲取當(dāng)前時(shí)間,并通過(guò) Date 對(duì)象的方法進(jìn)行時(shí)間格式化和操作。通過(guò)本文的介紹,您應(yīng)該對(duì)在 Vue 中獲取當(dāng)前時(shí)間有了更深入的了解,并了解了一些常見(jiàn)的時(shí)間操作方法,需要的朋友可以參考下2023-07-07
Vuex中的getter和mutation的區(qū)別詳解
在現(xiàn)代前端開(kāi)發(fā)中,狀態(tài)管理是一個(gè)不可忽視的話題,而Vuex作為Vue.js的官方狀態(tài)管理庫(kù),在大型應(yīng)用中扮演著至關(guān)重要的角色,當(dāng)我們使用Vuex進(jìn)行狀態(tài)管理時(shí),getter和mutation是兩個(gè)重要的概念,在本文中,我們將詳細(xì)探討getter和mutation的區(qū)別,需要的朋友可以參考下2024-12-12
vue使用xe-utils函數(shù)庫(kù)的具體方法
這篇文章主要介紹了vue使用xe-utils函數(shù)庫(kù)的具體方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
vuejs 制作背景淡入淡出切換動(dòng)畫(huà)的實(shí)例
今天小編就為大家分享一篇vuejs 制作背景淡入淡出切換動(dòng)畫(huà)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
vue elementUI 表單校驗(yàn)的實(shí)現(xiàn)代碼(多層嵌套)
這篇文章主要介紹了vue elementUI 表單校驗(yàn)的實(shí)現(xiàn)代碼(多層嵌套),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

