import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; import config from "./config.js"; // import mkcert from "vite-plugin-mkcert"; import { createServer as createLangServer } from "./scripts/lang"; import { resolve } from "path"; const langProt = 8091; const ip = `http://192.168.0.25`; const proxy = { "/dev": { target: `http://localhost:${langProt}`, changeOrigin: true, rewrite: (path) => path.replace(/^\/dev/, "/dev"), }, "/offlineData": { target: "http://192.168.0.43:9000/", changeOrigin: true, rewrite: (path) => path.replace(/^\/offlineData/, ""), }, "/fusion/ws": { target: "wss://test-mix3d.4dkankan.com/", ws: true, rewriteWsOrigin: true, }, "/local": { target: "http://192.168.0.38:8808", changeOrigin: true, rewrite: (path) => path.replace(/^\/local/, ""), }, "/fusion": { target: ip, changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ""), }, "/swkk": { target: `${ip}/`, changeOrigin: true, rewrite: (path) => path.replace(/^\/swkk/, ""), }, "/oss": { target: `${ip}/`, changeOrigin: true, rewrite: (path) => path.replace(/^\/oss/, "/oss"), }, "/laser": { target: `${ip}/`, changeOrigin: true, rewrite: (path) => path.replace(/^\/laser/, "/laser"), }, "/laser-data": { target: `${ip}/`, changeOrigin: true, rewrite: (path) => path.replace(/^\/laser-data/, "/laser-data"), }, "/fdkk": { target: `${ip}/`, changeOrigin: true, rewrite: (path) => path.replace(/^\/fdkk/, "/fdkk"), }, "/service": { target: ip, changeOrigin: true, rewrite: (path) => path.replace(/^\/service/, "/service"), }, "/swss": { target: `${ip}/mega`, changeOrigin: true, rewrite: (path) => path.replace(/^\/swss/, ""), }, }; let app = "index"; if (process.argv.length > 3) { app = process.argv[process.argv.length - 1].trim(); } // https://vitejs.dev/config/ export default async ({ mode }) => { const input: { [key in string]: string } = {} if (process.argv.includes('lang')) { await createLangServer(langProt) input.lang = resolve(__dirname, 'lang.html') } else { input[app] = resolve(__dirname, `${app}.html`) } return { build: { rollupOptions: { input, }, }, plugins: [ vue(), // mkcert() ], css: { preprocessorOptions: { less: { javascriptEnabled: true, }, }, }, base: "./", assetsInclude: ["public/**/*"], resolve: { extensions: [".js", ".ts", ".json", ".vue"], alias: [ { find: "@", replacement: resolve(__dirname, "./src"), }, { find: "bill", replacement: resolve(__dirname, "./src/components/bill-ui"), }, ], }, server: { host: "0.0.0.0", port: 7173, // open: true, proxy: proxy, // https: true, }, preview: { proxy, }, }; };