mirror of
				https://github.com/pure-admin/vue-pure-admin.git
				synced 2025-11-03 13:44:47 +08:00 
			
		
		
		
	perf: 将baseURL和全局环境代理删除,可直接在vite.config.ts编写,即方便又支持多个代理地址
				
					
				
			This commit is contained in:
		
							parent
							
								
									731e9b2f57
								
							
						
					
					
						commit
						2bb433c3cd
					
				@ -4,11 +4,5 @@ VITE_PORT = 8848
 | 
				
			|||||||
# 开发环境读取配置文件路径
 | 
					# 开发环境读取配置文件路径
 | 
				
			||||||
VITE_PUBLIC_PATH = /
 | 
					VITE_PUBLIC_PATH = /
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 开发环境代理
 | 
					 | 
				
			||||||
VITE_PROXY_DOMAIN = /api
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 开发环境路由历史模式
 | 
					# 开发环境路由历史模式
 | 
				
			||||||
VITE_ROUTER_HISTORY = "hash"
 | 
					VITE_ROUTER_HISTORY = "hash"
 | 
				
			||||||
 | 
					 | 
				
			||||||
# 开发环境后端地址
 | 
					 | 
				
			||||||
VITE_PROXY_DOMAIN_REAL = "http://127.0.0.1:3000"
 | 
					 | 
				
			||||||
@ -4,9 +4,6 @@ VITE_PUBLIC_PATH = /
 | 
				
			|||||||
# 线上环境路由历史模式
 | 
					# 线上环境路由历史模式
 | 
				
			||||||
VITE_ROUTER_HISTORY = "hash"
 | 
					VITE_ROUTER_HISTORY = "hash"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 线上环境后端地址
 | 
					 | 
				
			||||||
VITE_PROXY_DOMAIN_REAL = ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 是否为打包后的文件提供传统浏览器兼容性支持 支持 true 不支持 false
 | 
					# 是否为打包后的文件提供传统浏览器兼容性支持 支持 true 不支持 false
 | 
				
			||||||
VITE_LEGACY = false
 | 
					VITE_LEGACY = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -7,16 +7,13 @@ VITE_PUBLIC_PATH = /
 | 
				
			|||||||
# 线上环境路由历史模式
 | 
					# 线上环境路由历史模式
 | 
				
			||||||
VITE_ROUTER_HISTORY = "hash"
 | 
					VITE_ROUTER_HISTORY = "hash"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 线上环境后端地址
 | 
					 | 
				
			||||||
VITE_PROXY_DOMAIN_REAL = ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 是否为打包后的文件提供传统浏览器兼容性支持 支持 true 不支持 false
 | 
					# 是否为打包后的文件提供传统浏览器兼容性支持 支持 true 不支持 false
 | 
				
			||||||
VITE_LEGACY = false
 | 
					VITE_LEGACY = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 是否在打包时使用cdn替换本地库 替换 true 不替换 false
 | 
					# 是否在打包时使用cdn替换本地库 替换 true 不替换 false
 | 
				
			||||||
VITE_CDN = false
 | 
					VITE_CDN = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 是否启用gzip压缩或brotli压缩(分两种情况,删除原始文件和不删除原始文件)
 | 
					# 是否启用gzip压缩或brotli压缩(分两种情况,删除原始文件和不删除原始文件)
 | 
				
			||||||
# 压缩时不删除原始文件的配置:gzip、brotli、both(同时开启 gzip 与 brotli 压缩)、none(不开启压缩,默认)
 | 
					# 压缩时不删除原始文件的配置:gzip、brotli、both(同时开启 gzip 与 brotli 压缩)、none(不开启压缩,默认)
 | 
				
			||||||
# 压缩时删除原始文件的配置:gzip-clear、brotli-clear、both-clear(同时开启 gzip 与 brotli 压缩)、none(不开启压缩,默认)
 | 
					# 压缩时删除原始文件的配置:gzip-clear、brotli-clear、both-clear(同时开启 gzip 与 brotli 压缩)、none(不开启压缩,默认)
 | 
				
			||||||
VITE_COMPRESSION = "none"
 | 
					VITE_COMPRESSION = "both-clear"
 | 
				
			||||||
 | 
				
			|||||||
@ -4,8 +4,6 @@ const warpperEnv = (envConf: Recordable): ViteEnv => {
 | 
				
			|||||||
  const ret: ViteEnv = {
 | 
					  const ret: ViteEnv = {
 | 
				
			||||||
    VITE_PORT: 8848,
 | 
					    VITE_PORT: 8848,
 | 
				
			||||||
    VITE_PUBLIC_PATH: "",
 | 
					    VITE_PUBLIC_PATH: "",
 | 
				
			||||||
    VITE_PROXY_DOMAIN: "",
 | 
					 | 
				
			||||||
    VITE_PROXY_DOMAIN_REAL: "",
 | 
					 | 
				
			||||||
    VITE_ROUTER_HISTORY: "",
 | 
					    VITE_ROUTER_HISTORY: "",
 | 
				
			||||||
    VITE_LEGACY: false,
 | 
					    VITE_LEGACY: false,
 | 
				
			||||||
    VITE_CDN: false,
 | 
					    VITE_CDN: false,
 | 
				
			||||||
@ -30,14 +28,9 @@ const warpperEnv = (envConf: Recordable): ViteEnv => {
 | 
				
			|||||||
  return ret;
 | 
					  return ret;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** 跨域代理重写 */
 | 
					 | 
				
			||||||
const regExps = (value: string, reg: string): string => {
 | 
					 | 
				
			||||||
  return value.replace(new RegExp(`^${reg}`, "g"), "");
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/** 环境变量 */
 | 
					/** 环境变量 */
 | 
				
			||||||
const loadEnv = (): ViteEnv => {
 | 
					const loadEnv = (): ViteEnv => {
 | 
				
			||||||
  return import.meta.env;
 | 
					  return import.meta.env;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export { warpperEnv, regExps, loadEnv };
 | 
					export { warpperEnv, loadEnv };
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
import { http } from "../utils/http";
 | 
					import { http } from "@/utils/http";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Result = {
 | 
					type Result = {
 | 
				
			||||||
  success: boolean;
 | 
					  success: boolean;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
import { http } from "../utils/http";
 | 
					import { http } from "@/utils/http";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Result = {
 | 
					type Result = {
 | 
				
			||||||
  success: boolean;
 | 
					  success: boolean;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
import { http } from "../utils/http";
 | 
					import { http } from "@/utils/http";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Result = {
 | 
					type Result = {
 | 
				
			||||||
  success: boolean;
 | 
					  success: boolean;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
import { http } from "../utils/http";
 | 
					import { http } from "@/utils/http";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Result = {
 | 
					type Result = {
 | 
				
			||||||
  success: boolean;
 | 
					  success: boolean;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
import { http } from "../utils/http";
 | 
					import { http } from "@/utils/http";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export type UserResult = {
 | 
					export type UserResult = {
 | 
				
			||||||
  success: boolean;
 | 
					  success: boolean;
 | 
				
			||||||
 | 
				
			|||||||
@ -11,21 +11,12 @@ import {
 | 
				
			|||||||
} from "./types.d";
 | 
					} from "./types.d";
 | 
				
			||||||
import { stringify } from "qs";
 | 
					import { stringify } from "qs";
 | 
				
			||||||
import NProgress from "../progress";
 | 
					import NProgress from "../progress";
 | 
				
			||||||
// import { loadEnv } from "@build/index";
 | 
					 | 
				
			||||||
import { getToken, formatToken } from "@/utils/auth";
 | 
					import { getToken, formatToken } from "@/utils/auth";
 | 
				
			||||||
import { useUserStoreHook } from "@/store/modules/user";
 | 
					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
 | 
					// 相关配置请参考:www.axios-js.com/zh-cn/docs/#axios-request-config-1
 | 
				
			||||||
const defaultConfig: AxiosRequestConfig = {
 | 
					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,
 | 
					  timeout: 10000,
 | 
				
			||||||
  headers: {
 | 
					  headers: {
 | 
				
			||||||
    Accept: "application/json, text/plain, */*",
 | 
					    Accept: "application/json, text/plain, */*",
 | 
				
			||||||
 | 
				
			|||||||
@ -67,7 +67,7 @@ const onLogin = async (formEl: FormInstance | undefined) => {
 | 
				
			|||||||
  await formEl.validate((valid, fields) => {
 | 
					  await formEl.validate((valid, fields) => {
 | 
				
			||||||
    if (valid) {
 | 
					    if (valid) {
 | 
				
			||||||
      useUserStoreHook()
 | 
					      useUserStoreHook()
 | 
				
			||||||
        .loginByUsername({ username: ruleForm.username })
 | 
					        .loginByUsername({ username: ruleForm.username, password: "admin123" })
 | 
				
			||||||
        .then(res => {
 | 
					        .then(res => {
 | 
				
			||||||
          if (res.success) {
 | 
					          if (res.success) {
 | 
				
			||||||
            // 获取后端路由
 | 
					            // 获取后端路由
 | 
				
			||||||
 | 
				
			|||||||
@ -30,7 +30,7 @@ const options = [
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function onChange() {
 | 
					function onChange() {
 | 
				
			||||||
  useUserStoreHook()
 | 
					  useUserStoreHook()
 | 
				
			||||||
    .loginByUsername({ username: username.value })
 | 
					    .loginByUsername({ username: username.value, password: "admin123" })
 | 
				
			||||||
    .then(res => {
 | 
					    .then(res => {
 | 
				
			||||||
      if (res.success) {
 | 
					      if (res.success) {
 | 
				
			||||||
        usePermissionStoreHook().clearAllCachePage();
 | 
					        usePermissionStoreHook().clearAllCachePage();
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								types/global.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								types/global.d.ts
									
									
									
									
										vendored
									
									
								
							@ -86,8 +86,6 @@ declare global {
 | 
				
			|||||||
  declare interface ViteEnv {
 | 
					  declare interface ViteEnv {
 | 
				
			||||||
    VITE_PORT: number;
 | 
					    VITE_PORT: number;
 | 
				
			||||||
    VITE_PUBLIC_PATH: string;
 | 
					    VITE_PUBLIC_PATH: string;
 | 
				
			||||||
    VITE_PROXY_DOMAIN: string;
 | 
					 | 
				
			||||||
    VITE_PROXY_DOMAIN_REAL: string;
 | 
					 | 
				
			||||||
    VITE_ROUTER_HISTORY: string;
 | 
					    VITE_ROUTER_HISTORY: string;
 | 
				
			||||||
    VITE_LEGACY: boolean;
 | 
					    VITE_LEGACY: boolean;
 | 
				
			||||||
    VITE_CDN: boolean;
 | 
					    VITE_CDN: boolean;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
import dayjs from "dayjs";
 | 
					import dayjs from "dayjs";
 | 
				
			||||||
import { resolve } from "path";
 | 
					import { resolve } from "path";
 | 
				
			||||||
import pkg from "./package.json";
 | 
					import pkg from "./package.json";
 | 
				
			||||||
import { warpperEnv, regExps } from "./build";
 | 
					import { warpperEnv } from "./build";
 | 
				
			||||||
import { getPluginsList } from "./build/plugins";
 | 
					import { getPluginsList } from "./build/plugins";
 | 
				
			||||||
import { UserConfigExport, ConfigEnv, loadEnv } from "vite";
 | 
					import { UserConfigExport, ConfigEnv, loadEnv } from "vite";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -31,9 +31,7 @@ export default ({ command, mode }: ConfigEnv): UserConfigExport => {
 | 
				
			|||||||
    VITE_PORT,
 | 
					    VITE_PORT,
 | 
				
			||||||
    VITE_LEGACY,
 | 
					    VITE_LEGACY,
 | 
				
			||||||
    VITE_COMPRESSION,
 | 
					    VITE_COMPRESSION,
 | 
				
			||||||
    VITE_PUBLIC_PATH,
 | 
					    VITE_PUBLIC_PATH
 | 
				
			||||||
    VITE_PROXY_DOMAIN,
 | 
					 | 
				
			||||||
    VITE_PROXY_DOMAIN_REAL
 | 
					 | 
				
			||||||
  } = warpperEnv(loadEnv(mode, root));
 | 
					  } = warpperEnv(loadEnv(mode, root));
 | 
				
			||||||
  return {
 | 
					  return {
 | 
				
			||||||
    base: VITE_PUBLIC_PATH,
 | 
					    base: VITE_PUBLIC_PATH,
 | 
				
			||||||
@ -48,18 +46,8 @@ export default ({ command, mode }: ConfigEnv): UserConfigExport => {
 | 
				
			|||||||
      // 端口号
 | 
					      // 端口号
 | 
				
			||||||
      port: VITE_PORT,
 | 
					      port: VITE_PORT,
 | 
				
			||||||
      host: "0.0.0.0",
 | 
					      host: "0.0.0.0",
 | 
				
			||||||
      // 本地跨域代理
 | 
					      // 本地跨域代理 https://cn.vitejs.dev/config/server-options.html#server-proxy
 | 
				
			||||||
      proxy:
 | 
					      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
 | 
					 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    plugins: getPluginsList(command, VITE_LEGACY, VITE_CDN, VITE_COMPRESSION),
 | 
					    plugins: getPluginsList(command, VITE_LEGACY, VITE_CDN, VITE_COMPRESSION),
 | 
				
			||||||
    optimizeDeps: {
 | 
					    optimizeDeps: {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user