该配置是包含了打包配置,根目录设置,静态文件别名设置,打包环境去掉console.log 组件按需引入,配置mock,以及使用,跨域,按需引入,gzip压缩

线上

1.vite打包路径,打包之前是绝对定位,打包之后是相对路由,在vite.config里面配置base:”./“,如果不配置的话本地访问不到

base:"./"

设置根目录

使用必须先下载node的声明文件
yarn add --dev @types/node
import { resolve } from "path";
resolve: {
//设置别名
alias: {
"@": resolve(__dirname, 'src')
}
},

静态资源设置别名 “/icon”: “./src/assets”,

1693047802327

打包环境去掉打印console.log

1.先安装  npm i terser --legacy--peer-deps
2.然后配置打包配置

1693049138109

组件库按需引入

打包前是800多kb,打包后是100多

1.npm install -D unplugin-vue-components unplugin-auto-import
2.在vite.config.引入
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
3.AutoImport({
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [ElementPlusResolver()],
}),

1693050560206

安装mock

1.简介

1693051032907

1.安装

yarn add mockjs vite-plugin-mock@2.9.6 -D

2.vite.config.ts中

import { viteMockServe } from "vite-plugin-mock";
viteMockServe({
// default
mockPath: "mock",
}),

1693057264581

3.创建文件mock mock文件夹一定要放在src外面

// test.ts

import { MockMethod } from "vite-plugin-mock";
import { mock } from "mockjs";
var data = mock({
"list|100": [
{
goods: "小米",
price: 3000,
},
],
});
export default [
{
url: "/api/get",
method: "get",
response: ({ query }) => {
return {
code: 0,
data,
};
},
},
] as MockMethod[];

4.组件中使用

import axios from "axios";
async function fn() {
const { data } = await axios.get("/api/get");
console.log(data);
}
fn();

跨域vite.config.ts中

server: {
// 配置服务器代理,实现跨域
proxy: {
//所有以 '/api'为前缀的接口都转向http://localhost:8000
// // http://127.0.0.1:5173/api/user
// // http://localhost:8000/api/user
// // http://localhost:8000/user
"/api": {
target: "http://localhost:8000",
changeOrigin: true,
//去掉接口中的 '/api'以便和后端接口匹配
rewrite: (path) => path.replace(/^\/api/, ""),
},
},
},

env环境变量

1.定义两个文件夹
.env.development //生产阶段
VITE_BASE_API=/api/get //线下接口数据
.env.production //线上
VITE_BASE_API=www.baidu.com //线上接口数据

使用cdn按需引入

1.安装
npm install vite-plugin-cdn-import --save-dev
2.安装
$ npm install element-plus --save
3.vite.config.ts中引入
import { autoComplete, Plugin as importToCDN } from "vite-plugin-cdn-import";
importToCDN({
modules: [
{
name: "vue",
var: "Vue",
path: `https://unpkg.com/vue@next`,
},
{
name: "element-plus",
var: "ElementPlus",
path: `https://unpkg.com/element-plus`,
css: "https://unpkg.com/element-plus/dist/index.css",
},
],
}),

1693063558556

没使用之前

1693063675911

使用后

1693064251052

压缩代码gzip

1.安装

npm i vite-plugin-compression -D

2.引入

import viteCompression from "vite-plugin-compression";

3.配置

viteCompression(),

1693065147135