52 lines
1.1 KiB
TypeScript
Executable File
52 lines
1.1 KiB
TypeScript
Executable File
import { defineConfig, loadEnv } from "vite";
|
|
import vue from "@vitejs/plugin-vue";
|
|
import path from "path";
|
|
import { VitePWA } from "vite-plugin-pwa";
|
|
|
|
export default defineConfig(({ mode }) => {
|
|
const env = loadEnv(mode, process.cwd(), "")
|
|
const apiPort = Number(env.VITE_API_PORT) || 3300
|
|
|
|
return {
|
|
plugins: [
|
|
vue(),
|
|
VitePWA({
|
|
strategies: "injectManifest",
|
|
srcDir: "./src/lib",
|
|
filename: "sw.ts",
|
|
injectRegister: false,
|
|
manifest: false,
|
|
injectManifest: {
|
|
injectionPoint: undefined,
|
|
},
|
|
devOptions: {
|
|
enabled: true,
|
|
type: "module",
|
|
},
|
|
}),
|
|
|
|
],
|
|
server: {
|
|
hmr: {
|
|
clientPort: 5173,
|
|
protocol: "ws",
|
|
},
|
|
proxy: {
|
|
"/api": {
|
|
target: `http://localhost:${apiPort}`,
|
|
changeOrigin: true,
|
|
},
|
|
"/manifest.json": {
|
|
target: `http://localhost:${apiPort}`,
|
|
changeOrigin: true,
|
|
},
|
|
},
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
"@": path.resolve(__dirname, "src"),
|
|
},
|
|
},
|
|
}
|
|
})
|