- Replace static app name in index.html and use environment variable for dynamic title - Update Vite configuration to reflect new app name and description - Modify manifest icons for better clarity and organization - Remove deprecated logo asset from the project This commit enhances the app's configurability and aligns with the new branding strategy.
95 lines
2.7 KiB
TypeScript
95 lines
2.7 KiB
TypeScript
import { fileURLToPath, URL } from 'node:url'
|
|
import vue from '@vitejs/plugin-vue'
|
|
import tailwindcss from '@tailwindcss/vite'
|
|
import { defineConfig } from 'vite'
|
|
import { VitePWA } from 'vite-plugin-pwa'
|
|
import Inspect from 'vite-plugin-inspect'
|
|
import { ViteImageOptimizer } from 'vite-plugin-image-optimizer'
|
|
import { visualizer } from 'rollup-plugin-visualizer'
|
|
|
|
// https://vite.dev/config/
|
|
export default defineConfig(({ mode }) => ({
|
|
plugins: [
|
|
vue(),
|
|
tailwindcss(),
|
|
VitePWA({
|
|
registerType: 'autoUpdate',
|
|
devOptions: {
|
|
enabled: true
|
|
},
|
|
// strategies: 'injectManifest',
|
|
srcDir: 'public',
|
|
filename: 'sw.js',
|
|
workbox: {
|
|
globPatterns: [
|
|
'**/*.{js,css,html,ico,png,svg}'
|
|
]
|
|
},
|
|
includeAssets: [
|
|
'favicon.ico',
|
|
'apple-touch-icon.png',
|
|
'mask-icon.svg',
|
|
// optional: include the icon PNGs explicitly if you also reference them directly
|
|
'icon-192.png',
|
|
'icon-512.png',
|
|
'icon-maskable-192.png',
|
|
'icon-maskable-512.png',
|
|
],
|
|
manifest: {
|
|
name: 'AIO - Community Hub',
|
|
short_name: 'AIO',
|
|
description: 'Nostr-based community platform with Lightning Network integration for events, market and announcements',
|
|
theme_color: '#1f2937',
|
|
background_color: '#ffffff',
|
|
display: 'standalone',
|
|
orientation: 'portrait-primary',
|
|
start_url: '/',
|
|
scope: '/',
|
|
id: 'aio-community-hub',
|
|
categories: ['social', 'utilities'],
|
|
lang: 'en',
|
|
"icons": [
|
|
{ "src": "/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any" },
|
|
{ "src": "/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any" },
|
|
{ "src": "/icon-maskable-192.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable" },
|
|
{ "src": "/icon-maskable-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
|
|
],
|
|
}
|
|
}),
|
|
Inspect(),
|
|
ViteImageOptimizer({
|
|
jpg: {
|
|
quality: 80
|
|
},
|
|
png: {
|
|
quality: 80
|
|
},
|
|
webp: {
|
|
lossless: true
|
|
}
|
|
}),
|
|
mode === 'analyze' && visualizer({
|
|
open: true,
|
|
filename: 'dist/stats.html',
|
|
gzipSize: true,
|
|
brotliSize: true
|
|
})
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
'@': fileURLToPath(new URL('./src', import.meta.url))
|
|
}
|
|
},
|
|
build: {
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks: {
|
|
'vue-vendor': ['vue', 'vue-router', 'pinia'],
|
|
'ui-vendor': ['radix-vue', '@vueuse/core'],
|
|
'shadcn': ['class-variance-authority', 'clsx', 'tailwind-merge']
|
|
}
|
|
}
|
|
},
|
|
chunkSizeWarningLimit: 1000
|
|
}
|
|
}))
|