配置文件:vite.config.ts
1.配置打包公共路径-base
1 | base:'./' |
2.配置地址别名-alias
使用简短的别名去替代一个较长的路径
__dirname
:项目的绝对路径
安装
1
npm install --save path
引入
1
import { resolve } from 'path'
配置
1
2
3
4
5
6
7
8export default defineConfig({
resolve:{
alias: {
test: resolve(__dirname, 'src/components/test/'),
icon: resolve(__dirname, './src/assets/images/')
}
}
})使用
1
2
3
4
5
6
7
8
9
10
11// 修改前:
import ViteSet from '../../components/test/ViteSet.vue';
<img src="../../assets/images/zhangyu.svg" alt="章鱼小丸子">
// 修改后:
import ViteSet2 from 'test/ViteSet.vue';
<img src="icon/zhangyu.svg" alt="章鱼小丸子">
<ViteSet></ViteSet>
<ViteSet2></ViteSet2>
2.1图片的地址的别名-特殊处理
图片使用
icon: resolve(__dirname, './src/assets/images/')
这种配置,打包上线后,页面可以正常显示图片,但本地测试是加载不出图片的。所以不能直接写
名称:resolve(...)
,要使用引号加斜杠开头的别名
2.1.1配置
1 | resolve:{ |
2.1.2使用
1 | // 修改前: |
这样本地环境和正式环境都能正常显示
3.生产环境去除console.log的配置
1 | export default defineConfig({ |
3.1报错处理
打包上线会出现报错:
[vite:terser] terser not found. Since Vite v3, terser has become an optional dependency. You need to install it.
解决:Vite V3需要安装terser依赖包
1 | cnpm i terser |
4.mock数据的配置
1 | npm i vite-plugin-mock mockjs -D |
4.1引入
1 | import { viteMockServe } from 'vite-plugin-mock' |
4.2使用
在根目录新建mock目录
4.2.1mock/index.ts:
1 | // test.ts |
4.2.2引入axios
1 | cnpm i axios |
1 | import axios from 'axios' |
使用mock来模拟更多数据
1 | npm install mockjs --save-dev |
使用示例:
1 | import Mock from 'mockjs' |
将mock模拟的数据放到接口返回中
mock/index.ts:
1 | // test.ts |
5.配置前端跨域代理
proxy
1 | server: { |
1 | axios.get('/ss').then(res => { |
1 | export default defineConfig({ |
6.env环境变量的配置
6.1环境变量配置
.env.development
:
可配置多个
1 | VITE_BASE_API = /api |
.env.production
:
1 | VITE_BASE_API = https://www.manga2020.com/api/v3/comic/hydxjxrwgb/chapter/cb321fca-c608-11e8-879b-024352452ce0?timeout=10000 |
6.2修改请求链接
1 | async function fn() { |
本地环境使用mock数据: /api 正式环境使用正式的api链接
这样本地可以使用mock数据,正式使用正式的api数据。互不影响。
7.CDN的配置
备注:暂时配置不成功
1 | npm install vite-plugin-cdn-import --save-dev |
1 | import importToCDN, { autoComplete } from 'vite-plugin-cdn-import' |
8.代码压缩的配置-gzip
1 | npm i vite-plugin-compression -D |
1 | import viteCompression from 'vite-plugin-compression'; |
9.打包图片
1 | cnpm i vite-plugin-imagemin@0.4.6 -D |
1 | import viteImagemin from 'vite-plugin-imagemin' |
以上代码,本地会报错,需重启一下
参考:搭建vite2.0+vue3.0+ts+多页面打包+多环境+gzip+图片压缩框架
Vite图片压缩(vite-plugin-imagemin) imagemin error: XXXX解决办法