| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
 | | import { defineConfig, loadEnv } from "vite"; |  | import path from "path"; |  | import createVitePlugins from "./vite/plugins"; |  |   |  | // export default defineConfig({ |  | //   plugins: [vue()], |  | //   server: { |  | //     proxy: proxyConfig() // 使用动态配置的代理 |  | //   } |  | // }); |  | // https://vitejs.dev/config/ |  | export default defineConfig(({ mode, command }) => { |  |   const env = loadEnv(mode, process.cwd()); |  |   const { VITE_APP_ENV, VITE_APP_BASE_API } = env; |  |   console.log(VITE_APP_BASE_API, VITE_APP_ENV); |  |   // 根据环境变量动态设置代理 |  |   const proxyConfig = () => { |  |     const personProxy = { |  |       "/prod-api": { |  |         target: "http://192.168.50.160:8080",//"http://192.168.50.13:8080", // 开发环境的后端地址 |  |         changeOrigin: true, |  |         rewrite: (path) => path.replace(/^\/prod-api/, ""), |  |       }, |  |     }; |  |     const devProxy = { |  |       "/prod-api": { |  |         target: "http://192.168.50.160:8080", // 开发环境的后端地址 |  |         changeOrigin: true, |  |         rewrite: (path) => path.replace(/^\/prod-api/, ""), |  |       }, |  |     }; |  |   |  |     const testProxy = { |  |       "/prod-api": { |  |         target: "http://192.168.50.160:8080", // 测试环境的后端地址 |  |         changeOrigin: true, |  |         rewrite: (path) => path.replace(/^\/prod-api/, ""), |  |       }, |  |     }; |  |   |  |     const prodProxy = { |  |       "/prod-api": { |  |         target: "http://192.168.50.160:8080", // 测试环境的后端地址 |  |         changeOrigin: true, |  |         rewrite: (path) => path.replace(/^\/prod-api/, ""), |  |       }, |  |     }; |  |   |  |     switch (VITE_APP_ENV) { |  |       case "development": |  |         return personProxy; |  |       case "int": |  |         return devProxy; |  |       case "uat": |  |         return testProxy; |  |       default: // 默认开发环境 |  |         return prodProxy; |  |     } |  |   }; |  |   return { |  |     // 部署生产环境和开发环境下的URL。 |  |     // 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上 |  |     // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 |  |     base: VITE_APP_ENV === "production" ? "/" : "/", |  |     plugins: createVitePlugins(env, command === "build"), |  |     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"], |  |     }, |  |     // vite 相关配置 |  |     server: { |  |       port: 80, |  |       host: true, |  |       open: true, |  |       proxy: proxyConfig(), |  |     }, |  |     //fix:error:stdin>:7356:1: warning: "@charset" must be the first rule in the file |  |     css: { |  |       postcss: { |  |         plugins: [ |  |           { |  |             postcssPlugin: "internal:charset-removal", |  |             AtRule: { |  |               charset: (atRule) => { |  |                 if (atRule.name === "charset") { |  |                   atRule.remove(); |  |                 } |  |               }, |  |             }, |  |           }, |  |         ], |  |       }, |  |     }, |  |   }; |  | }); | 
 |