Skip to content

自定义 env

json
"build:qins": "vite build --mode qins",

.env.qins

VITE_BASE=/wanx-26c-3e1a/
ts
import { fileURLToPath, URL } from 'node:url'

import { ConfigEnv, loadEnv, ProxyOptions, UserConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import vueDevTools from 'vite-plugin-vue-devtools'

import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { TDesignResolver } from '@tdesign-vue-next/auto-import-resolver';

const CWD = process.cwd();

// https://vite.dev/config/
export default ({ mode }: ConfigEnv): UserConfig => {
  const { VITE_DEV_PROXY_URL, VITE_DEV_PROXY_ENABLE, VITE_DEV_PROXY_PREFIX, VITE_BASE } = loadEnv(mode, CWD);

  const proxy: Record<string, string | ProxyOptions> = {}

  console.log('VITE_BASE', VITE_BASE)

  if (VITE_DEV_PROXY_ENABLE) {
    if (VITE_DEV_PROXY_PREFIX && VITE_DEV_PROXY_URL) {
      proxy[VITE_DEV_PROXY_PREFIX] = VITE_DEV_PROXY_URL;
    } else {
      throw new Error('代理配置不完整')
    }
  }


  return {
    base: VITE_BASE || '/',
    server: {
      host: true,
      port: 2630,
      proxy,
    },
    plugins: [
      vue(),
      vueJsx(),
      vueDevTools(),
      AutoImport({
        resolvers: [TDesignResolver({
          library: 'vue-next'
        })],
      }),
      Components({
        resolvers: [TDesignResolver({
          library: 'vue-next'
        })],
      }),
    ],
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url))
      },
    },
  }
}