unstable sharing refactor
This commit is contained in:
+82
-72
@@ -1,4 +1,4 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import { defineConfig, loadEnv } from 'vite'
|
||||
import solid from 'vite-plugin-solid'
|
||||
import { VitePWA } from 'vite-plugin-pwa'
|
||||
import tailwindcss from '@tailwindcss/vite'
|
||||
@@ -9,80 +9,90 @@ const packageJson = JSON.parse(
|
||||
readFileSync(new URL('./package.json', import.meta.url), 'utf-8')
|
||||
);
|
||||
|
||||
export default defineConfig({
|
||||
define: {
|
||||
__APP_VERSION__: JSON.stringify(packageJson.version),
|
||||
},
|
||||
plugins: [
|
||||
solid(),
|
||||
tailwindcss(),
|
||||
VitePWA({
|
||||
registerType: 'prompt',
|
||||
includeAssets: ['icon.webp', 'vite.svg'],
|
||||
manifest: {
|
||||
name: 'Tasgrid',
|
||||
short_name: 'Tasgrid',
|
||||
description: 'Precision Productivity Task Manager',
|
||||
theme_color: '#0a0a0a',
|
||||
background_color: '#0a0a0a',
|
||||
display: 'standalone',
|
||||
icons: [
|
||||
{
|
||||
src: 'icon.webp',
|
||||
sizes: '1024x1024',
|
||||
type: 'image/webp',
|
||||
purpose: 'any'
|
||||
},
|
||||
{
|
||||
src: 'icon.webp',
|
||||
sizes: '192x192',
|
||||
type: 'image/webp',
|
||||
purpose: 'maskable'
|
||||
},
|
||||
{
|
||||
src: 'icon.webp',
|
||||
sizes: '512x512',
|
||||
type: 'image/webp',
|
||||
purpose: 'any'
|
||||
}
|
||||
]
|
||||
},
|
||||
workbox: {
|
||||
globPatterns: ['**/*.{js,css,html,ico,png,svg,woff2}'],
|
||||
runtimeCaching: [
|
||||
{
|
||||
urlPattern: /^https:\/\/pocketbase\.ccllc\.pro\/api\/.*/i,
|
||||
method: 'GET',
|
||||
handler: 'NetworkFirst',
|
||||
options: {
|
||||
cacheName: 'api-cache',
|
||||
expiration: {
|
||||
maxEntries: 100,
|
||||
maxAgeSeconds: 60 * 60 * 24 * 7 // 1 week
|
||||
},
|
||||
cacheableResponse: {
|
||||
statuses: [0, 200]
|
||||
export default defineConfig(({ mode }) => {
|
||||
const env = loadEnv(mode, process.cwd(), '')
|
||||
const dataMode = (env.VITE_TASGRID_DATA_MODE || 'prod').toLowerCase()
|
||||
const isDevData = dataMode === 'dev'
|
||||
const pocketbaseUrl = env.VITE_POCKETBASE_URL || 'https://pocketbase.ccllc.pro'
|
||||
const pocketbaseOrigin = new URL(pocketbaseUrl).origin.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
|
||||
const cacheSuffix = isDevData ? '-devdata' : '-prod'
|
||||
|
||||
return {
|
||||
define: {
|
||||
__APP_VERSION__: JSON.stringify(packageJson.version),
|
||||
},
|
||||
plugins: [
|
||||
solid(),
|
||||
tailwindcss(),
|
||||
VitePWA({
|
||||
registerType: 'prompt',
|
||||
includeAssets: ['icon.webp', 'vite.svg'],
|
||||
manifest: {
|
||||
name: isDevData ? 'Tasgrid Dev' : 'Tasgrid',
|
||||
short_name: isDevData ? 'TasgridDev' : 'Tasgrid',
|
||||
description: isDevData ? 'Tasgrid development data lane' : 'Precision Productivity Task Manager',
|
||||
theme_color: '#0a0a0a',
|
||||
background_color: '#0a0a0a',
|
||||
display: 'standalone',
|
||||
icons: [
|
||||
{
|
||||
src: 'icon.webp',
|
||||
sizes: '1024x1024',
|
||||
type: 'image/webp',
|
||||
purpose: 'any'
|
||||
},
|
||||
{
|
||||
src: 'icon.webp',
|
||||
sizes: '192x192',
|
||||
type: 'image/webp',
|
||||
purpose: 'maskable'
|
||||
},
|
||||
{
|
||||
src: 'icon.webp',
|
||||
sizes: '512x512',
|
||||
type: 'image/webp',
|
||||
purpose: 'any'
|
||||
}
|
||||
]
|
||||
},
|
||||
workbox: {
|
||||
cleanupOutdatedCaches: true,
|
||||
globPatterns: ['**/*.{js,css,html,ico,png,svg,woff2}'],
|
||||
runtimeCaching: [
|
||||
{
|
||||
urlPattern: new RegExp(`^${pocketbaseOrigin}/api/.*`, 'i'),
|
||||
method: 'GET',
|
||||
handler: 'NetworkFirst',
|
||||
options: {
|
||||
cacheName: `api-cache${cacheSuffix}`,
|
||||
expiration: {
|
||||
maxEntries: 100,
|
||||
maxAgeSeconds: 60 * 60 * 24 * 7
|
||||
},
|
||||
cacheableResponse: {
|
||||
statuses: [0, 200]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
})
|
||||
],
|
||||
server: {
|
||||
host: '0.0.0.0',
|
||||
port: 4000,
|
||||
cors: { origin: '*' },
|
||||
headers: {
|
||||
'Access-Control-Allow-Origin': '*'
|
||||
]
|
||||
}
|
||||
})
|
||||
],
|
||||
server: {
|
||||
host: '0.0.0.0',
|
||||
port: 4000,
|
||||
cors: { origin: '*' },
|
||||
headers: {
|
||||
'Access-Control-Allow-Origin': '*'
|
||||
},
|
||||
allowedHosts: [
|
||||
'tasgrid.ccllc.pro'
|
||||
]
|
||||
},
|
||||
allowedHosts: [
|
||||
'tasgrid.ccllc.pro'
|
||||
]
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
"@": path.resolve(__dirname, "./src")
|
||||
resolve: {
|
||||
alias: {
|
||||
"@": path.resolve(__dirname, "./src")
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user