Replace CRA SW with Vite SW and resolve PWA installation.

This commit is contained in:
Patrick Fic
2024-02-27 17:29:09 -08:00
parent 63945e0ce2
commit 9daf992582
79 changed files with 4117 additions and 790 deletions

View File

@@ -6,6 +6,8 @@ import * as url from 'url';
import { defineConfig } from 'vite';
import { ViteEjsPlugin } from 'vite-plugin-ejs';
import CompressionPlugin from 'vite-plugin-compression';
import { VitePWA } from 'vite-plugin-pwa';
import InstanceRenderManager from './src/utils/instanceRenderMgr';
process.env.VITE_APP_GIT_SHA_DATE = new Date().toLocaleString('en-US', {
timeZone: 'America/Los_Angeles',
@@ -40,7 +42,65 @@ export default defineConfig({
// viteConfig is the current Vite resolved config
return { env: viteConfig.env };
}),
VitePWA({
injectRegister: 'auto',
registerType: 'prompt',
manifest: {
short_name: InstanceRenderManager({
instance: process.env.VITE_APP_INSTANCE,
imex: 'ImEX Online',
rome: 'Rome Online',
promanager: 'ProManager',
}),
name: InstanceRenderManager({
instance: process.env.VITE_APP_INSTANCE,
imex: 'ImEX Online',
rome: 'Rome Online',
promanager: 'ProManager',
}),
description: 'The ultimate bodyshop management system.',
icons: [
{ //TODO:AIO Ensure that these are correct for Rome and IO.
src: InstanceRenderManager({
instance: process.env.VITE_APP_INSTANCE,
imex: 'favicon.png',
rome: 'ro-favicon.png',
promanager: '/pm/pm-favicon.ico',
}),
sizes: '64x64 32x32 24x24 16x16',
type: 'image/x-icon',
},
{
src: InstanceRenderManager({
instance: process.env.VITE_APP_INSTANCE,
imex: 'logo192.png',
rome: 'logo192.png',
promanager: '/pm/pm-icon-192.png',
}),
type: 'image/png',
sizes: '192x192',
},
{
src: InstanceRenderManager({
instance: process.env.VITE_APP_INSTANCE,
imex: 'logo512.png',
rome: 'ro-favicon.png',
promanager: '/pm/pm-icon-512.png',
}),
type: 'image/png',
sizes: '512x512',
},
],
theme_color: InstanceRenderManager({
instance: process.env.VITE_APP_INSTANCE,
imex: '#1890ff',
rome: '#fff',
promanager: '#1d69a6',
}),
background_color: '#fff',
gcm_sender_id: '103953800507',
},
}),
reactVirtualized(),
react(),
CompressionPlugin(),