Files
todo.sori.studio/vite.config.js

55 lines
1.3 KiB
JavaScript

import { fileURLToPath, URL } from 'node:url'
import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import { VitePWA } from 'vite-plugin-pwa'
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), '')
const publicAppUrl = (env.VITE_PUBLIC_APP_URL || '').trim().replace(/\/+$/, '')
const manifestIdentity =
publicAppUrl !== ''
? {
id: `${publicAppUrl}/`,
scope: '/'
}
: {}
return {
plugins: [
vue(),
VitePWA({
registerType: 'autoUpdate',
includeAssets: ['favicon.svg'],
manifest: {
name: 'Todo',
short_name: 'Todo',
description: 'NAS용 Todo 웹앱',
theme_color: '#f2f2f7',
background_color: '#f2f2f7',
display: 'standalone',
start_url: '/',
lang: 'ko',
icons: [
{
src: '/favicon.svg',
sizes: 'any',
type: 'image/svg+xml',
purpose: 'any'
}
],
...manifestIdentity
},
workbox: {
globPatterns: ['**/*.{js,css,html,ico,svg,woff2}']
}
})
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
}
}
})