2023-05-24 12:24:34 +02:00
/* eslint-disable import/no-extraneous-dependencies */
import { defineConfig } from "vite" ;
import react from "@vitejs/plugin-react" ;
2023-05-24 21:36:01 +02:00
import { VitePWA } from "vite-plugin-pwa" ;
// please look at develop.md for how to run your browser
// in a mode allowing insecure service worker testing
// this turns on:
// - the service worker in dev mode
// - turns off automatically opening the browser
const enableLocalPWATesting = process . env . ENABLE _DEV _PWA ;
2023-05-24 12:24:34 +02:00
export default defineConfig ( ( ) => ( {
build : {
outDir : "build" ,
2023-05-25 03:44:12 +02:00
assetsDir : "static/media" ,
2023-05-24 21:36:01 +02:00
sourcemap : true ,
2023-05-24 12:24:34 +02:00
} ,
server : {
port : 3000 ,
2023-05-24 21:36:01 +02:00
open : ! enableLocalPWATesting ,
2023-05-24 12:24:34 +02:00
} ,
2023-05-24 21:36:01 +02:00
plugins : [
react ( ) ,
VitePWA ( {
registerType : "autoUpdate" ,
injectRegister : "inline" ,
strategies : "injectManifest" ,
devOptions : {
enabled : enableLocalPWATesting ,
/* when using generateSW the PWA plugin will switch to classic */
type : "module" ,
navigateFallback : "index.html" ,
} ,
injectManifest : {
globPatterns : [ "**/*.{js,css,html,mp3,png,svg,json}" ] ,
globIgnores : [ "config.js" ] ,
manifestTransforms : [
( entries ) => ( {
manifest : entries . map ( ( entry ) =>
entry . url === "index.html"
? {
... entry ,
url : "/" ,
}
: entry
) ,
} ) ,
] ,
} ,
manifest : {
name : "ntfy web" ,
short _name : "ntfy" ,
description :
"ntfy lets you send push notifications via scripts from any computer or phone. Made with ❤ by Philipp C. Heckel, Apache License 2.0, source at https://heckel.io/ntfy." ,
theme _color : "#317f6f" ,
start _url : "/" ,
icons : [
{
src : "/static/images/pwa-192x192.png" ,
sizes : "192x192" ,
type : "image/png" ,
} ,
{
src : "/static/images/pwa-512x512.png" ,
sizes : "512x512" ,
type : "image/png" ,
} ,
] ,
} ,
} ) ,
] ,
2023-05-24 12:24:34 +02:00
} ) ) ;