Browse Source

perf: 将`baseURL`和全局环境代理删除,可直接在`vite.config.ts`编写,即方便又支持多个代理地址

xiaoxian521 2 years ago
parent
commit
2bb433c3cd

+ 0 - 6
.env.development

@@ -4,11 +4,5 @@ VITE_PORT = 8848
 # 开发环境读取配置文件路径
 VITE_PUBLIC_PATH = /
 
-# 开发环境代理
-VITE_PROXY_DOMAIN = /api
-
 # 开发环境路由历史模式
 VITE_ROUTER_HISTORY = "hash"
-
-# 开发环境后端地址
-VITE_PROXY_DOMAIN_REAL = "http://127.0.0.1:3000"

+ 0 - 3
.env.production

@@ -4,9 +4,6 @@ VITE_PUBLIC_PATH = /
 # 线上环境路由历史模式
 VITE_ROUTER_HISTORY = "hash"
 
-# 线上环境后端地址
-VITE_PROXY_DOMAIN_REAL = ""
-
 # 是否为打包后的文件提供传统浏览器兼容性支持 支持 true 不支持 false
 VITE_LEGACY = false
 

+ 2 - 5
.env.staging

@@ -7,16 +7,13 @@ VITE_PUBLIC_PATH = /
 # 线上环境路由历史模式
 VITE_ROUTER_HISTORY = "hash"
 
-# 线上环境后端地址
-VITE_PROXY_DOMAIN_REAL = ""
-
 # 是否为打包后的文件提供传统浏览器兼容性支持 支持 true 不支持 false
 VITE_LEGACY = false
 
 # 是否在打包时使用cdn替换本地库 替换 true 不替换 false
-VITE_CDN = false
+VITE_CDN = true
 
 # 是否启用gzip压缩或brotli压缩(分两种情况,删除原始文件和不删除原始文件)
 # 压缩时不删除原始文件的配置:gzip、brotli、both(同时开启 gzip 与 brotli 压缩)、none(不开启压缩,默认)
 # 压缩时删除原始文件的配置:gzip-clear、brotli-clear、both-clear(同时开启 gzip 与 brotli 压缩)、none(不开启压缩,默认)
-VITE_COMPRESSION = "none"
+VITE_COMPRESSION = "both-clear"

+ 1 - 8
build/index.ts

@@ -4,8 +4,6 @@ const warpperEnv = (envConf: Recordable): ViteEnv => {
   const ret: ViteEnv = {
     VITE_PORT: 8848,
     VITE_PUBLIC_PATH: "",
-    VITE_PROXY_DOMAIN: "",
-    VITE_PROXY_DOMAIN_REAL: "",
     VITE_ROUTER_HISTORY: "",
     VITE_LEGACY: false,
     VITE_CDN: false,
@@ -30,14 +28,9 @@ const warpperEnv = (envConf: Recordable): ViteEnv => {
   return ret;
 };
 
-/** 跨域代理重写 */
-const regExps = (value: string, reg: string): string => {
-  return value.replace(new RegExp(`^${reg}`, "g"), "");
-};
-
 /** 环境变量 */
 const loadEnv = (): ViteEnv => {
   return import.meta.env;
 };
 
-export { warpperEnv, regExps, loadEnv };
+export { warpperEnv, loadEnv };

+ 1 - 1
src/api/list.ts

@@ -1,4 +1,4 @@
-import { http } from "../utils/http";
+import { http } from "@/utils/http";
 
 type Result = {
   success: boolean;

+ 1 - 1
src/api/mock.ts

@@ -1,4 +1,4 @@
-import { http } from "../utils/http";
+import { http } from "@/utils/http";
 
 type Result = {
   success: boolean;

+ 1 - 1
src/api/routes.ts

@@ -1,4 +1,4 @@
-import { http } from "../utils/http";
+import { http } from "@/utils/http";
 
 type Result = {
   success: boolean;

+ 1 - 1
src/api/system.ts

@@ -1,4 +1,4 @@
-import { http } from "../utils/http";
+import { http } from "@/utils/http";
 
 type Result = {
   success: boolean;

+ 1 - 1
src/api/user.ts

@@ -1,4 +1,4 @@
-import { http } from "../utils/http";
+import { http } from "@/utils/http";
 
 export type UserResult = {
   success: boolean;

+ 1 - 10
src/utils/http/index.ts

@@ -11,21 +11,12 @@ import {
 } from "./types.d";
 import { stringify } from "qs";
 import NProgress from "../progress";
-// import { loadEnv } from "@build/index";
 import { getToken, formatToken } from "@/utils/auth";
 import { useUserStoreHook } from "@/store/modules/user";
 
-// 加载环境变量 VITE_PROXY_DOMAIN(开发环境)  VITE_PROXY_DOMAIN_REAL(打包后的线上环境)
-// const { VITE_PROXY_DOMAIN, VITE_PROXY_DOMAIN_REAL } = loadEnv();
-
 // 相关配置请参考:www.axios-js.com/zh-cn/docs/#axios-request-config-1
 const defaultConfig: AxiosRequestConfig = {
-  // baseURL:
-  //   process.env.NODE_ENV === "production"
-  //     ? VITE_PROXY_DOMAIN_REAL
-  //     : VITE_PROXY_DOMAIN,
-  // 当前使用mock模拟请求,将baseURL制空,如果你的环境用到了http请求,请删除下面的baseURL启用上面的baseURL,并将第14行、19行代码注释取消
-  baseURL: "",
+  // 请求超时时间
   timeout: 10000,
   headers: {
     Accept: "application/json, text/plain, */*",

+ 1 - 1
src/views/login/index.vue

@@ -67,7 +67,7 @@ const onLogin = async (formEl: FormInstance | undefined) => {
   await formEl.validate((valid, fields) => {
     if (valid) {
       useUserStoreHook()
-        .loginByUsername({ username: ruleForm.username })
+        .loginByUsername({ username: ruleForm.username, password: "admin123" })
         .then(res => {
           if (res.success) {
             // 获取后端路由

+ 1 - 1
src/views/permission/page/index.vue

@@ -30,7 +30,7 @@ const options = [
 
 function onChange() {
   useUserStoreHook()
-    .loginByUsername({ username: username.value })
+    .loginByUsername({ username: username.value, password: "admin123" })
     .then(res => {
       if (res.success) {
         usePermissionStoreHook().clearAllCachePage();

+ 0 - 2
types/global.d.ts

@@ -86,8 +86,6 @@ declare global {
   declare interface ViteEnv {
     VITE_PORT: number;
     VITE_PUBLIC_PATH: string;
-    VITE_PROXY_DOMAIN: string;
-    VITE_PROXY_DOMAIN_REAL: string;
     VITE_ROUTER_HISTORY: string;
     VITE_LEGACY: boolean;
     VITE_CDN: boolean;

+ 4 - 16
vite.config.ts

@@ -1,7 +1,7 @@
 import dayjs from "dayjs";
 import { resolve } from "path";
 import pkg from "./package.json";
-import { warpperEnv, regExps } from "./build";
+import { warpperEnv } from "./build";
 import { getPluginsList } from "./build/plugins";
 import { UserConfigExport, ConfigEnv, loadEnv } from "vite";
 
@@ -31,9 +31,7 @@ export default ({ command, mode }: ConfigEnv): UserConfigExport => {
     VITE_PORT,
     VITE_LEGACY,
     VITE_COMPRESSION,
-    VITE_PUBLIC_PATH,
-    VITE_PROXY_DOMAIN,
-    VITE_PROXY_DOMAIN_REAL
+    VITE_PUBLIC_PATH
   } = warpperEnv(loadEnv(mode, root));
   return {
     base: VITE_PUBLIC_PATH,
@@ -48,18 +46,8 @@ export default ({ command, mode }: ConfigEnv): UserConfigExport => {
       // 端口号
       port: VITE_PORT,
       host: "0.0.0.0",
-      // 本地跨域代理
-      proxy:
-        VITE_PROXY_DOMAIN_REAL.length > 0
-          ? {
-              [VITE_PROXY_DOMAIN]: {
-                target: VITE_PROXY_DOMAIN_REAL,
-                // ws: true,
-                changeOrigin: true,
-                rewrite: (path: string) => regExps(path, VITE_PROXY_DOMAIN)
-              }
-            }
-          : null
+      // 本地跨域代理 https://cn.vitejs.dev/config/server-options.html#server-proxy
+      proxy: {}
     },
     plugins: getPluginsList(command, VITE_LEGACY, VITE_CDN, VITE_COMPRESSION),
     optimizeDeps: {