ysdp-juntechysdp/fe/vite.config.js

80 lines
1.9 KiB
JavaScript

import { defineConfig, loadEnv } from 'vite'
import path from 'path'
import vue from '@vitejs/plugin-vue'
const rewritePlugin = (path, excludes) => ({
name: "rewrite-middleware",
configureServer(serve) {
serve.middlewares.use((req, res, next) => {
if (req.url.startsWith(path)) {
const isRaw = excludes.some((dir) => req.url.includes(dir))
if (!isRaw) req.url = path
}
next()
})
},
})
export default ({ mode, command }) => {
const env = loadEnv(mode, process.cwd())
const { VITE_APP_BASE } = env
return defineConfig({
base:'./',
plugins: [vue(),
rewritePlugin('/datav.html/', ['/datav.html/src', '/datav.html/static'])
],
resolve: {
// https://cn.vitejs.dev/config/#resolve-alias
alias: {
// 设置路径
'~': path.resolve(__dirname, './'),
// 设置别名
'@': path.resolve(__dirname, './src')
},
// https://cn.vitejs.dev/config/#resolve-extensions
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
},
build: {
rollupOptions: {
input: {
index: path.resolve(__dirname, 'index.html'),
datav: path.resolve(__dirname, 'datav.html')
}
}
},
// vite 相关配置
server: {
port: 2800,
host: true,
open: true,
proxy: {
'/api': {
target: VITE_APP_BASE,
changeOrigin: true,
rewrite: (p) => p.replace(/^\/api/, '')
},
'/file': {
target: VITE_APP_BASE,
changeOrigin: true,
rewrite: (p) => p.replace(/^\/file/, /file/)
}
},
},
css: {
postcss: {
plugins: [
{
postcssPlugin: 'internal:charset-removal',
AtRule: {
charset: (atRule) => {
if (atRule.name === 'charset') {
atRule.remove();
}
}
}
}
],
},
},
})
}