mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-07-16 17:48:49 +02:00
103 lines
2.7 KiB
TypeScript
103 lines
2.7 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 generateSitemap from "vite-ssg-sitemap";
|
|
import vueDevTools from "vite-plugin-vue-devtools";
|
|
import { ViteSSGOptions } from "vite-ssg";
|
|
|
|
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: <ViteSSGOptions>{
|
|
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();
|
|
}
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|