97 lines
2.6 KiB
TypeScript
97 lines
2.6 KiB
TypeScript
import { defineConfig } from "vite";
|
||
import react from "@vitejs/plugin-react";
|
||
import { VitePWA } from "vite-plugin-pwa";
|
||
|
||
// 本地开发:API 由 wrangler dev(默认 8787)提供
|
||
export default defineConfig({
|
||
plugins: [
|
||
react(),
|
||
VitePWA({
|
||
registerType: "prompt",
|
||
includeAssets: ["favicon.ico", "logo.png", "logo192.png", "logo512.png"],
|
||
manifest: {
|
||
id: "/",
|
||
name: "Domainflare",
|
||
short_name: "Domainflare",
|
||
description: "Cloudflare 域名与 DNS 记录管理面板",
|
||
lang: "zh-CN",
|
||
dir: "ltr",
|
||
start_url: "/",
|
||
scope: "/",
|
||
display: "standalone",
|
||
orientation: "any",
|
||
theme_color: "#2f6feb",
|
||
background_color: "#fffcf5",
|
||
categories: ["utilities", "productivity"],
|
||
prefer_related_applications: false,
|
||
icons: [
|
||
{
|
||
src: "/logo192.png",
|
||
sizes: "192x192",
|
||
type: "image/png",
|
||
purpose: "any",
|
||
},
|
||
{
|
||
src: "/logo512.png",
|
||
sizes: "512x512",
|
||
type: "image/png",
|
||
purpose: "any",
|
||
},
|
||
{
|
||
src: "/logo512.png",
|
||
sizes: "512x512",
|
||
type: "image/png",
|
||
purpose: "maskable",
|
||
},
|
||
],
|
||
},
|
||
workbox: {
|
||
cleanupOutdatedCaches: true,
|
||
skipWaiting: false,
|
||
clientsClaim: true,
|
||
maximumFileSizeToCacheInBytes: 5 * 1024 * 1024,
|
||
globPatterns: ["**/*.{js,css,html,ico,png,svg,woff2}"],
|
||
navigateFallback: "/index.html",
|
||
navigateFallbackDenylist: [/^\/api\b/],
|
||
runtimeCaching: [
|
||
{
|
||
urlPattern: /\/api\//,
|
||
handler: "NetworkOnly",
|
||
},
|
||
{
|
||
urlPattern: /^https:\/\/fonts\.googleapis\.com\/.*/,
|
||
handler: "StaleWhileRevalidate",
|
||
options: {
|
||
cacheName: "google-fonts-stylesheets",
|
||
expiration: { maxEntries: 10, maxAgeSeconds: 60 * 60 * 24 * 365 },
|
||
},
|
||
},
|
||
{
|
||
urlPattern: /^https:\/\/fonts\.gstatic\.com\/.*/,
|
||
handler: "StaleWhileRevalidate",
|
||
options: {
|
||
cacheName: "google-fonts-webfonts",
|
||
expiration: { maxEntries: 30, maxAgeSeconds: 60 * 60 * 24 * 365 },
|
||
},
|
||
},
|
||
],
|
||
},
|
||
devOptions: {
|
||
enabled: false,
|
||
},
|
||
}),
|
||
],
|
||
server: {
|
||
port: 5173,
|
||
proxy: {
|
||
"/api": {
|
||
target: "http://127.0.0.1:8787",
|
||
changeOrigin: true,
|
||
},
|
||
},
|
||
},
|
||
build: {
|
||
outDir: "dist",
|
||
},
|
||
});
|