75 lines
2.3 KiB
JavaScript
75 lines
2.3 KiB
JavaScript
/**********************************
|
||
* @Author: Ronnie Zhang
|
||
* @LastEditor: Ronnie Zhang
|
||
* @LastEditTime: 2023/12/05 21:31:02
|
||
* @Email: zclzone@outlook.com
|
||
* Copyright © 2023 Ronnie Zhang(大脸怪) | https://isme.top
|
||
**********************************/
|
||
|
||
import path from 'node:path'
|
||
import { defineConfig, loadEnv } from 'vite'
|
||
import Vue from '@vitejs/plugin-vue'
|
||
import VueDevTools from 'vite-plugin-vue-devtools'
|
||
import Unocss from 'unocss/vite'
|
||
import AutoImport from 'unplugin-auto-import/vite'
|
||
import Components from 'unplugin-vue-components/vite'
|
||
import { NaiveUiResolver } from 'unplugin-vue-components/resolvers'
|
||
import removeNoMatch from 'vite-plugin-router-warn'
|
||
import { pluginIcons, pluginPagePathes } from './build/plugin-isme'
|
||
|
||
export default defineConfig(({ mode }) => {
|
||
const viteEnv = loadEnv(mode, process.cwd())
|
||
const { VITE_PUBLIC_PATH, VITE_PROXY_TARGET } = viteEnv
|
||
|
||
return {
|
||
base: VITE_PUBLIC_PATH || '/',
|
||
plugins: [
|
||
Vue(),
|
||
VueDevTools(),
|
||
Unocss(),
|
||
AutoImport({
|
||
imports: ['vue', 'vue-router'],
|
||
dts: false,
|
||
}),
|
||
Components({
|
||
resolvers: [NaiveUiResolver()],
|
||
dts: false,
|
||
}),
|
||
// 自定义插件,用于生成页面文件的path,并添加到虚拟模块
|
||
pluginPagePathes(),
|
||
// 自定义插件,用于生成自定义icon,并添加到虚拟模块
|
||
pluginIcons(),
|
||
// 移除非必要的vue-router动态路由警告: No match found for location with path
|
||
removeNoMatch(),
|
||
],
|
||
resolve: {
|
||
alias: {
|
||
'@': path.resolve(process.cwd(), 'src'),
|
||
'~': path.resolve(process.cwd()),
|
||
},
|
||
},
|
||
server: {
|
||
host: '0.0.0.0',
|
||
port: 3200,
|
||
open: false,
|
||
proxy: {
|
||
'/api': {
|
||
target: VITE_PROXY_TARGET,
|
||
changeOrigin: true,
|
||
rewrite: path => path.replace(/^\/api/, ''),
|
||
secure: false,
|
||
configure: (proxy, options) => {
|
||
// 配置此项可在响应头中看到请求的真实地址
|
||
proxy.on('proxyRes', (proxyRes, req) => {
|
||
proxyRes.headers['x-real-url'] = new URL(req.url || '', options.target)?.href || ''
|
||
})
|
||
},
|
||
},
|
||
},
|
||
},
|
||
build: {
|
||
chunkSizeWarningLimit: 1024, // chunk 大小警告的限制(单位kb)
|
||
},
|
||
}
|
||
})
|