diff --git a/web/.env b/web/.env index c6b4793..5c85cbc 100644 --- a/web/.env +++ b/web/.env @@ -1,3 +1,3 @@ VITE_TITLE = 'Vue FastAPI Admin' -VITE_PORT = 3100 +VITE_PORT = 3100 \ No newline at end of file diff --git a/web/.env.development b/web/.env.development index 6ac7c30..e37c5b2 100644 --- a/web/.env.development +++ b/web/.env.development @@ -4,5 +4,5 @@ VITE_PUBLIC_PATH = '/' # 是否启用代理 VITE_USE_PROXY = true -# 代理类型 'dev' | 'test' | 'prod' -VITE_PROXY_TYPE = 'dev' \ No newline at end of file +# base api +VITE_BASE_API = '/api' diff --git a/web/.gitignore b/web/.gitignore index 7cc64f4..fe403fc 100644 --- a/web/.gitignore +++ b/web/.gitignore @@ -13,6 +13,7 @@ dist dist-ssr coverage *.local +stats.html # Editor directories and files .vscode/* diff --git a/web/build/config/index.js b/web/build/config/index.js index 967ddda..066d06d 100644 --- a/web/build/config/index.js +++ b/web/build/config/index.js @@ -1,2 +1 @@ export * from './define' -export * from './proxy' diff --git a/web/build/config/proxy.js b/web/build/config/proxy.js deleted file mode 100644 index f3d0c92..0000000 --- a/web/build/config/proxy.js +++ /dev/null @@ -1,15 +0,0 @@ -import { getProxyConfig } from '../../settings' - -export function createViteProxy(isUseProxy = true, proxyType) { - if (!isUseProxy) return undefined - - const proxyConfig = getProxyConfig(proxyType) - const proxy = { - [proxyConfig.prefix]: { - target: proxyConfig.target, - changeOrigin: true, - rewrite: (path) => path.replace(new RegExp(`^${proxyConfig.prefix}`), ''), - }, - } - return proxy -} diff --git a/web/build/constant.js b/web/build/constant.js new file mode 100644 index 0000000..880cc2a --- /dev/null +++ b/web/build/constant.js @@ -0,0 +1,23 @@ +export const OUTPUT_DIR = 'dist' + +export const PROXY_CONFIG = { + /** + * @desc 替换匹配值 + * @请求路径 http://localhost:3100/api/user + * @转发路径 http://localhost:9999/api/v1 +/user + */ + '/api': { + target: 'http://localhost:9999/api/v1', + changeOrigin: true, + rewrite: (path) => path.replace(new RegExp('^/api'), ''), + }, + // /** + // * @desc 不替换匹配值 + // * @请求路径 http://localhost:3100/api/v1/user + // * @转发路径 http://localhost:9999/api/v1/user + // */ + // '/api/v1': { + // target: 'http://localhost:9999', + // changeOrigin: true, + // }, +} diff --git a/web/settings/index.js b/web/settings/index.js index 1957e86..913a438 100644 --- a/web/settings/index.js +++ b/web/settings/index.js @@ -1,2 +1 @@ export * from './theme.json' -export * from './proxy-config' diff --git a/web/settings/proxy-config.js b/web/settings/proxy-config.js deleted file mode 100644 index eda83ad..0000000 --- a/web/settings/proxy-config.js +++ /dev/null @@ -1,18 +0,0 @@ -const proxyConfigMappings = { - dev: { - prefix: '/url-patten', - target: 'http://127.0.0.1:9999/api/v1', - }, - test: { - prefix: '/url-patten', - target: 'http://127.0.0.1:9999', - }, - prod: { - prefix: '/url-patten', - target: 'http://127.0.0.1:9999', - }, -} - -export function getProxyConfig(envType = 'dev') { - return proxyConfigMappings[envType] -} diff --git a/web/src/utils/http/index.js b/web/src/utils/http/index.js index f30dd1f..6fa57ef 100644 --- a/web/src/utils/http/index.js +++ b/web/src/utils/http/index.js @@ -1,9 +1,5 @@ import axios from 'axios' import { resReject, resResolve, reqReject, reqResolve } from './interceptors' -import { getProxyConfig } from '../../../settings' - -const proxyConfig = getProxyConfig(import.meta.env.VITE_PROXY_TYPE) -const isUseProxy = false export function createAxios(options = {}) { const defaultOptions = { @@ -19,5 +15,5 @@ export function createAxios(options = {}) { } export const request = createAxios({ - baseURL: isUseProxy ? proxyConfig.prefix : proxyConfig.target, + baseURL: import.meta.env.VITE_BASE_API, }) diff --git a/web/vite.config.js b/web/vite.config.js index 0ba8ec1..9828e40 100644 --- a/web/vite.config.js +++ b/web/vite.config.js @@ -1,8 +1,9 @@ import { defineConfig, loadEnv } from 'vite' import { convertEnv, getSrcPath, getRootPath } from './build/utils' -import { createViteProxy, viteDefine } from './build/config' +import { viteDefine } from './build/config' import { createVitePlugins } from './build/plugin' +import { OUTPUT_DIR, PROXY_CONFIG } from './build/constant' export default defineConfig(({ command, mode }) => { const srcPath = getSrcPath() @@ -11,7 +12,8 @@ export default defineConfig(({ command, mode }) => { const env = loadEnv(mode, process.cwd()) const viteEnv = convertEnv(env) - const { VITE_PORT, VITE_PUBLIC_PATH, VITE_USE_PROXY, VITE_PROXY_TYPE } = viteEnv + const { VITE_PORT, VITE_PUBLIC_PATH, VITE_USE_PROXY, VITE_BASE_API } = viteEnv + return { base: VITE_PUBLIC_PATH || '/', resolve: { @@ -26,11 +28,15 @@ export default defineConfig(({ command, mode }) => { host: '0.0.0.0', port: VITE_PORT, open: true, - proxy: createViteProxy(VITE_USE_PROXY, VITE_PROXY_TYPE), + proxy: VITE_USE_PROXY + ? { + [VITE_BASE_API]: PROXY_CONFIG[VITE_BASE_API], + } + : undefined, }, build: { target: 'es2015', - outDir: 'dist', + outDir: OUTPUT_DIR || 'dist', reportCompressedSize: false, // 启用/禁用 gzip 压缩大小报告 chunkSizeWarningLimit: 1024, // chunk 大小警告的限制(单位kb) },