revite/vite.config.ts
2021-06-22 13:47:47 +01:00

64 lines
1.6 KiB
TypeScript

import { resolve } from 'path'
import { readFileSync } from 'fs'
import { defineConfig } from 'vite'
import preact from '@preact/preset-vite'
import { VitePWA } from 'vite-plugin-pwa'
import replace from '@rollup/plugin-replace'
function getGitRevision() {
try {
const rev = readFileSync('.git/HEAD').toString().trim();
if (rev.indexOf(':') === -1) {
return rev;
} else {
return readFileSync('.git/' + rev.substring(5)).toString().trim();
}
} catch (err) {
console.error('Failed to get Git revision.');
return '?';
}
}
export default defineConfig({
plugins: [
preact(),
VitePWA({
manifest: {
name: "Revolt",
short_name: "Revolt",
description: "User-first, privacy-focused chat platform.",
categories: ["messaging"],
start_url: "/",
display: "standalone",
orientation: "portrait",
background_color: "#101823",
icons: [
{
"src": "/assets/icons/android-chrome-192x192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "/assets/icons/android-chrome-512x512.png",
"type": "image/png",
"sizes": "512x512"
}
]
},
workbox: { }
}),
replace({
__GIT_REVISION__: getGitRevision(),
preventAssignment: true
})
],
build: {
sourcemap: true,
rollupOptions: {
input: {
main: resolve(__dirname, 'index.html'),
ui: resolve(__dirname, 'ui/index.html')
}
}
}
})