quality_frontend/platform/base/vite.config.ts

91 lines
2.6 KiB
TypeScript

import {ConfigEnv, UserConfigExport} from 'vite'
import viteSvgIcons from 'vite-plugin-svg-icons';
import vue from '@vitejs/plugin-vue'
import qiankun from "vite-plugin-qiankun"
import {viteMockServe} from 'vite-plugin-mock'
import path, {resolve} from 'path'
import Pages from "vite-plugin-pages";
import {proxyEnvHost} from "./src/config/proxy"
const pathResolve = (dir: string): any => {
return resolve(__dirname, '.', dir)
}
console.log(proxyEnvHost.development);
const alias: Record<string, string> = {
'@': pathResolve('src'),
'api': pathResolve('src/api'),
'views': pathResolve('src/views'),
'components': pathResolve('src/components'),
}
// https://vitejs.dev/config/
export default ({command}: ConfigEnv): UserConfigExport => {
const prodMock = true
return {
base: "/base",
css:{
devSourcemap:true
},
resolve: {
alias
},
server: {
port: 3000,
host: '0.0.0.0',
open: true,
proxy: {
// 代理配置
'/api': {
target: 'http://192.168.31.150:8080/',
changeOrigin: true,
rewrite: path => path.replace(/^\/api/, '')
},
// 代理配置
'/workbench': {
target: 'http://121.43.42.180:13777/',
changeOrigin: true,
rewrite: path => path.replace(/^\/workbench/, '/api')
}
}
},
build: {
assetsInlineLimit:8*1024,
rollupOptions: {
output: {
manualChunks: {
echarts: ['echarts']
}
}
}
},
plugins: [
vue(),
viteMockServe({
mockPath: 'mock',
localEnabled: command === 'serve',
prodEnabled: command !== 'serve' && prodMock,
watchFiles: true,
injectCode: `
import { setupProdMockServer } from '../mockProdServer';
setupProdMockServer();
`,
logger: true
}),
viteSvgIcons({
// 指定需要缓存的图标文件夹
iconDirs: [path.resolve(process.cwd(), 'src/assets/svg')],
// 指定symbolId格式
symbolId: 'icon-[dir]-[name]',
}),
Pages({
dirs: "src/views/system"
}),
qiankun("base", {
useDevMode: true
})
]
}
}