mirror of
https://github.com/momo5502/emulator.git
synced 2026-01-09 23:56:16 +00:00
69 lines
1.6 KiB
TypeScript
69 lines
1.6 KiB
TypeScript
import path from "path";
|
|
import tailwindcss from "@tailwindcss/vite";
|
|
import { defineConfig } from "vite";
|
|
import { VitePWA } from "vite-plugin-pwa";
|
|
import react from "@vitejs/plugin-react";
|
|
import { RuntimeCaching } from "workbox-build";
|
|
|
|
const mb = 1024 ** 2;
|
|
|
|
function generateExternalCache(
|
|
pattern: string | RegExp,
|
|
name: string,
|
|
): RuntimeCaching {
|
|
return {
|
|
urlPattern: pattern,
|
|
handler: "CacheFirst",
|
|
options: {
|
|
cacheName: name,
|
|
expiration: {
|
|
maxEntries: 10,
|
|
maxAgeSeconds: 60 * 60 * 24 * 365, // <== 365 days
|
|
},
|
|
cacheableResponse: {
|
|
statuses: [0, 200],
|
|
},
|
|
},
|
|
};
|
|
}
|
|
|
|
// https://vite.dev/config/
|
|
export default defineConfig({
|
|
plugins: [
|
|
react(),
|
|
tailwindcss(),
|
|
VitePWA({
|
|
registerType: "autoUpdate",
|
|
manifest: {
|
|
theme_color: "#0279E8",
|
|
background_color: "#141416",
|
|
},
|
|
workbox: {
|
|
maximumFileSizeToCacheInBytes: 100 * mb,
|
|
cleanupOutdatedCaches: true,
|
|
globPatterns: ["**/*.{js,css,html,woff,woff2,wasm}"],
|
|
globIgnores: ["root.zip"],
|
|
navigateFallbackDenylist: [/^\/root\.zip$/],
|
|
runtimeCaching: [
|
|
generateExternalCache(
|
|
/^https:\/\/momo5502\.com\/.*/i,
|
|
"momo5502-cache",
|
|
),
|
|
generateExternalCache(
|
|
/^https:\/\/img\.youtube\.com\/.*/i,
|
|
"youtube-img-cache",
|
|
),
|
|
],
|
|
},
|
|
}),
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
"@": path.resolve(__dirname, "./src"),
|
|
},
|
|
},
|
|
define: {
|
|
"import.meta.env.VITE_BUILD_TIME": JSON.stringify(Date.now()),
|
|
},
|
|
});
|