Vue3+Vite打包配置全過程(包括分包配置)
vite.config.ts文件中配置環(huán)境變量
1. 基本配置說明
import { defineConfig } from 'vite'
//配置組件路徑別名需引入resolve
import{ resolve } from 'path'
export default defineConfig({
//配置根路徑,解決部署到服務(wù)器之后絕對(duì)路徑會(huì)報(bào)404問題,所以需改為相對(duì)路徑
base:"./",
server: {
open: true, //自動(dòng)打開瀏覽器
proxy: {
// 字符串簡(jiǎn)寫寫法,其他方法可看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è)參考,也希望大家多多支持腳本之家。
相關(guān)文章
在Vue中導(dǎo)入并讀取Excel數(shù)據(jù)的操作步驟
在工作中遇到需要前端上傳excel文件獲取到相應(yīng)數(shù)據(jù)處理之后傳給后端并且展示上傳文件的數(shù)據(jù),所以本文就來給大家介紹一下Vue中導(dǎo)入并讀取Excel數(shù)據(jù)的操作步驟,需要的朋友可以參考下2023-08-08
vue3使用vite搭建的項(xiàng)目需要安裝的插件/配置方式
這篇文章主要介紹了vue3使用vite搭建的項(xiàng)目需要安裝的插件/配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
iview實(shí)現(xiàn)select tree樹形下拉框的示例代碼
這篇文章主要介紹了iview實(shí)現(xiàn)select tree樹形下拉框的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
Vue+Element實(shí)現(xiàn)網(wǎng)頁版?zhèn)€人簡(jiǎn)歷系統(tǒng)(推薦)
這篇文章主要介紹了Vue+Element實(shí)現(xiàn)網(wǎng)頁版?zhèn)€人簡(jiǎn)歷系統(tǒng),需要的朋友可以參考下2019-12-12
Vue中常用的rules校驗(yàn)規(guī)則的實(shí)現(xiàn)
在vue開發(fā)中,難免遇到各種表單校驗(yàn),本文主要介紹了Vue中常用的rules校驗(yàn)規(guī)則的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
vue3組件的v-model:value與v-model的區(qū)別解析
在Vue3中,v-model和v-model:value都是用于實(shí)現(xiàn)雙向數(shù)據(jù)綁定的語法糖,但v-model:value提供了更顯式和靈活的綁定方式,允許你明確指定綁定的屬性名和事件名,它們的主要區(qū)別在于默認(rèn)行為、靈活性、多模型綁定和使用場(chǎng)景,感興趣的朋友一起看看吧2025-02-02
VUEJS實(shí)戰(zhàn)之構(gòu)建基礎(chǔ)并渲染出列表(1)
這篇文章主要為大家詳細(xì)介紹了VUEJS實(shí)戰(zhàn)之構(gòu)建基礎(chǔ)并渲染出列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06

