| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- 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: 8888,
- host: "0.0.0.0",
- proxy: {
- "/login": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/login/, "/login")
- },
- "/user": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/user/, "/user")
- },
- "/role": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/role/, "/role")
- },
- "/permission": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/permission/, "/permission")
- },
- "/users": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/users/, "/users")
- },
- "/shops": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/shops/, "/shops")
- },
- "/devices": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/devices/, "/devices")
- },
- "/order": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/order/, "/order")
- },
- "/products": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/products/, "/products")
- },
- "/inventory": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/inventory/, "/inventory")
- },
- "/marketing": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/marketing/, "/marketing")
- },
- "/checkin": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/checkin/, "/checkin")
- },
- "/announcement": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/announcement/, "/announcement")
- },
- "/operation-log": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/operation-log/, "/operation-log")
- },
- "/sync": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/sync/, "/sync")
- },
- "/new-product-apply": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/new-product-apply/, "/new-product-apply")
- },
- "/dashboard": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/dashboard/, "/dashboard")
- },
- "/dict": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/dict/, "/dict")
- },
- "/timed-discount": {
- target: "http://localhost:8080/admin",
- changeOrigin: true,
- rewrite: path => path.replace(/^\/timed-discount/, "/timed-discount")
- }
- },
- // 预热文件以提前转换和缓存结果,降低启动期间的初始页面加载时长并防止转换瀑布
- warmup: {
- clientFiles: ["./index.html", "./src/{views,components}/*"]
- }
- },
- plugins: getPluginsList(VITE_CDN, VITE_COMPRESSION),
- // 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__)
- }
- };
- };
|