Vue3之vite打包優(yōu)化方式
一、部分組件異步加載
按照vue官方文檔的介紹,對于某些優(yōu)先級比較低的組件可以使用異步加載的方式進(jìn)行引入
import {defineAsyncComponent} from "vue"
const MyDiagram = defineAsyncComponent(()=>import("./components/myDiagram.vue"))二、視圖分析優(yōu)化打包資源
1,下載插件
yarn add --dev rollup-plugin-visualizer
2,配置插件
//vite.config.js
import {visualizer} from "rollup-plugin-visualizer"
export default defineConfig({
plugins:[
visualizer({
emitFile:false,
file:"states.html",
open:true
})
]
})3,執(zhí)行打包命令,分析生成的視圖分析頁面
三、更改vite配置文件進(jìn)行打包優(yōu)化
1,依賴分包
//vite.config.js
build:{
rollupOptions:{
output:{ //靜態(tài)資源分類打包
chunkFileNames: 'static/js/[name]-[hash].js',
entryFileNames: 'static/js/[name]-[hash].js',
assetFileNames: 'static/[ext]/[name]-[hash].[ext]',
manualChunks(id){ //靜態(tài)資源拆分打包
if (id.includes('node_modules')) {
return id.toString().split('node_modules/')[1].split('/')[0].toString(); }
}
}
}
}2,開啟Gzip
它的主要作用就是縮小打包體積
安裝插件 yarn add vite-plugin-compression -D
參數(shù):
filter:過濾器,對哪些類型的文件進(jìn)行壓縮, 默認(rèn)為 /.(js|mjs|json|css|html)$/iverbose:true; 是否在控制臺輸出壓縮結(jié)果,默認(rèn)為truethreshold: 啟用壓縮的文件大小限制,單位是字節(jié),默認(rèn)為0disable:false; 是否禁用壓縮,默認(rèn)為falsedeleteOriginFile: 壓縮后是否刪除原文件,默認(rèn)為falsealgorithm: 采用的壓縮算法,默認(rèn)是gzipext:生成的壓縮包后綴
//vite.config.js
import viteCompression from "vite-plugin-compression";
plugins:[
viteCompression({
verbose: true,
disable: false,
threshold: 10240,
algorithm: 'gzip',
ext: '.gz',
})
]3,第三方組件庫按需加載
安裝插件 unplugin-vue-components 和 unplugin-auto-import
yarn add unplugin-auto-import -D yarn add unplugin-vue-components -D
其中 unplugin-vue-components 主要配置第三方組件按需加載
unplugin-auto-import 主要配置第三方aip 自動導(dǎo)入
簡單配置第三方組件按需導(dǎo)入
//vite.config.js
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { AntDesignVueResolver,ElementPlusResolver} from 'unplugin-vue-components/resolvers'
export default defineConfig {
plugins: [
// ...
AutoImport({
resolvers: [AntDesignVueResolver(),ElementPlusResolver()],
}),
Components({
resolvers: [AntDesignVueResolver(),ElementPlusResolver()],
}),
],總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
uniapp?APP中內(nèi)嵌webview的H5與APP相互通訊動態(tài)傳參代碼示例
最近外部公司的app要接入我司的uni H5項目,所以這篇文章主要給大家介紹了關(guān)于uniapp?APP中內(nèi)嵌webview的H5與APP相互通訊動態(tài)傳參的相關(guān)資料,需要的朋友可以參考下2024-04-04
vue-treeselect(適配Vue3.2)及Element-plus的TreeSelect組件使用
這篇文章主要介紹了vue-treeselect(適配Vue3.2)及Element-plus的TreeSelect組件使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
vue+elementUI動態(tài)增加表單項并添加驗證的代碼詳解
這篇文章主要介紹了vue+elementUI動態(tài)增加表單項并添加驗證的代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
vue動態(tài)生成新表單并且添加驗證校驗規(guī)則方式
這篇文章主要介紹了vue動態(tài)生成新表單并且添加驗證校驗規(guī)則方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10

