Skip to content

性能优化

打包体积可视化面板

npm i rollup-plugin-visualizer -D

typescript
// vite.config.ts
// 插件
import { visualizer } from "rollup-plugin-visualizer"; // 打包体积可视化

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue(), visualizer({ open: true })],
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url)),
    },
  },
});

配置 build

typescript
export default defineConfig({
  build: {
    chunkSizeWarningLimit:2000, //打包超过2000时控制台提示
    cssCodeSplit:true,// css拆分
    sourcemap:false,// 不生成sourcemap
    minify: false, // flase 禁用最小化混淆, esbuild最快 terser体积最小
    assetsInlineLimit:4000,//图片小4000转base64
  },
})

CDN


vite-plugin-cdn-import

下载依赖

npm install vite-plugin-cdn-import --save-dev

注意:版本号很重要!

typescript
// vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// 插件
import { visualizer } from 'rollup-plugin-visualizer';
import importToCDN from 'vite-plugin-cdn-import'

export default defineConfig({
	plugins: [
		vue(), 
		visualizer({ open: true }),
		importToCDN({
		    modules: [
		      {
		        name:"vue",
		        var:"Vue",
		        path:"https://unpkg.com/vue@3.2.38"
		      },{
          		name: "vue-router",
          		var: "VueRouter",
          		path: "https://unpkg.com/vue-router@4.1.5",
        	},{
		        name:"element-plus",
		        var:"ElementPlus",
		        path:"https://unpkg.com/element-plus@2.1.9",
		        css:"https://unpkg.com/element-plus/dist/index.css"
		      }
		    ]
		})],
    build: {
    	chunkSizeWarningLimit:2000, //打包超过2000时控制台提示
    	cssCodeSplit:true,// css拆分
    	sourcemap:false,// 不生成sourcemap
    	minify: false, // flase 禁用最小化混淆, esbuild最快 terser体积最小
    	assetsInlineLimit:4000,//图片小4000转base64
  },
})