12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- 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();
- }
- }
- }
- }
- ],
- },
- },
- })
- }
|