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
| import { getPluginsList } from "./build/plugins";
| import { include, exclude } from "./build/optimize";
| import { type UserConfigExport, type ConfigEnv, loadEnv } from "vite";
| import {
| root,
| alias,
| wrapperEnv,
| pathResolve,
| __APP_INFO__
| } from "./build/utils";
|
| export default ({ mode }: ConfigEnv): UserConfigExport => {
| const { VITE_CDN, VITE_PORT, VITE_COMPRESSION, VITE_PUBLIC_PATH } =
| wrapperEnv(loadEnv(mode, root));
| return {
| base: VITE_PUBLIC_PATH,
| root,
| resolve: {
| alias
| },
| // 服务端渲染
| server: {
| // 端口号
| port: VITE_PORT,
| host: "0.0.0.0",
| // 本地跨域代理 https://cn.vitejs.dev/config/server-options.html#server-proxy
| proxy: {
| "/api": {
| // 这里填写后端地址http://114.132.78.38:8096 http://192.168.0.36:5005
| target: "http://192.168.18.52:5005",
| changeOrigin: true,
| rewrite: path => path.replace(/^\/api/, "")
| }
| },
| // 预热文件以提前转换和缓存结果,降低启动期间的初始页面加载时长并防止转换瀑布
| warmup: {
| clientFiles: ["./index.html", "./src/{views,components}/*"]
| }
| },
| plugins: getPluginsList(VITE_CDN, VITE_COMPRESSION),
| css: {
| preprocessorOptions: {
| scss: {
| // 自动导入定制化样式进行文件覆盖
| additionalData: `@use "@/style/element-plus-new.scss" as *;`
| }
| }
| },
| // https://cn.vitejs.dev/config/dep-optimization-options.html#dep-optimization-options
| optimizeDeps: {
| include,
| exclude
| },
| build: {
| // https://cn.vitejs.dev/guide/build.html#browser-compatibility
| target: "es2015",
| sourcemap: false,
| // 消除打包大小超过500kb警告
| chunkSizeWarningLimit: 4000,
| rollupOptions: {
| input: {
| index: pathResolve("./index.html", import.meta.url)
| },
| // 静态资源分类打包
| output: {
| chunkFileNames: "static/js/[name]-[hash].js",
| entryFileNames: "static/js/[name]-[hash].js",
| assetFileNames: "static/[ext]/[name]-[hash].[ext]"
| }
| }
| },
| define: {
| __INTLIFY_PROD_DEVTOOLS__: false,
| __APP_INFO__: JSON.stringify(__APP_INFO__)
| }
| };
| };
|
|