mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-07-16 17:48:49 +02:00
96 lines
2.6 KiB
TypeScript
96 lines
2.6 KiB
TypeScript
//Calendar implementation for the HTWK Leipzig timetable. Evaluation and display of the individual dates in iCal format.
|
|
//Copyright (C) 2024 HTWKalender support@htwkalender.de
|
|
|
|
//This program is free software: you can redistribute it and/or modify
|
|
//it under the terms of the GNU Affero General Public License as published by
|
|
//the Free Software Foundation, either version 3 of the License, or
|
|
//(at your option) any later version.
|
|
|
|
//This program is distributed in the hope that it will be useful,
|
|
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
//GNU Affero General Public License for more details.
|
|
|
|
//You should have received a copy of the GNU Affero General Public License
|
|
//along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
import { defineConfig } from "vite";
|
|
import vue from "@vitejs/plugin-vue";
|
|
import { fileURLToPath } from "node:url";
|
|
import resolve from "@rollup/plugin-node-resolve";
|
|
import {resolve as pathResolver} from "path";
|
|
import terser from "@rollup/plugin-terser";
|
|
import ViteSSGOptions from "vite-ssg";
|
|
import generateSitemap from 'vite-ssg-sitemap'
|
|
import vueDevTools from 'vite-plugin-vue-devtools'
|
|
|
|
const hostname = "https://cal.htwk-leipzig.de";
|
|
|
|
// https://vitejs.dev/config/
|
|
export default defineConfig({
|
|
plugins: [
|
|
vue(),
|
|
resolve(),
|
|
terser(),
|
|
vueDevTools(),
|
|
],
|
|
resolve: {
|
|
alias:
|
|
{
|
|
"@": fileURLToPath(new URL("./src", import.meta.url)),
|
|
'primevue' : pathResolver(__dirname, 'node_modules/primevue'),
|
|
},
|
|
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.css', '.scss'],
|
|
},
|
|
ssgOptions: {
|
|
script: "async",
|
|
formatting: "minify",
|
|
format: "esm",
|
|
onFinished: () => {
|
|
generateSitemap({
|
|
hostname: hostname,
|
|
exclude: [
|
|
'/additional-modules',
|
|
'/edit-additional-modules',
|
|
'/edit-calendar',
|
|
'/rename-modules',
|
|
]
|
|
})
|
|
},
|
|
},
|
|
server: {
|
|
host: true,
|
|
port: 8000,
|
|
watch: {
|
|
usePolling: true,
|
|
},
|
|
proxy: {
|
|
"/api": {
|
|
target: "http://localhost:8090/api",
|
|
changeOrigin: true,
|
|
rewrite: (path) => path.replace(/^\/api/, ""),
|
|
},
|
|
},
|
|
},
|
|
build: {
|
|
sourcemap: true,
|
|
minify: "terser",
|
|
terserOptions: {
|
|
compress: {
|
|
drop_console: true,
|
|
},
|
|
},
|
|
cssMinify: "esbuild",
|
|
cssCodeSplit: true,
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks(id) {
|
|
if (id.includes("node_modules")) {
|
|
return id.toString().split("node_modules/")[1].split("/")[0].toString()
|
|
}
|
|
},
|
|
},
|
|
}
|
|
},
|
|
});
|